git tips์ ํ๊ตญ์ด ๋ฒ์ ๋ฌธ์์ ๋๋ค.
English | ไธญๆ | ะ ัััะบะธะน | Tiแบฟng Viแปt
- git-tip - ์๋์ ๋์ด๋ ํ๋ค์ ์ฌ์ฉํ ์ ์๋ CLI ํด (๋์ปค ์ปจํ ์ด๋)
์ฐธ๊ณ ๋ก ๋ชจ๋ ๋ช
๋ น์ด๋ ๋ค์ ๋ฒ์ ์์ ํ
์คํธ ๋์์ต๋๋ค: git version 2.7.4 (Apple Git-66)
.
- 20๊ฐ ๋ด์ธ์ ๋ช ๋ น์ด๋ก Git ์ฌ์ฉํ๊ธฐ
- Git๊ณผ ํจ๊ป ์ ๊ณต๋๋ ์ ์ฉํ ๊ฐ์ด๋๋ผ์ธ ๋ณด๊ธฐ
- ๋ด์ฉ์ผ๋ก ๋ณ๊ฒฝ์ฌํญ ๊ฒ์
- ์๊ฒฉ์ง ๋๊ธฐํ ๋ฐ ๋ก์ปฌ ๋ณ๊ฒฝ์ฌํญ ๋ฎ์ด์ฐ๊ธฐ
- ํน์ ์ปค๋ฐ๊น์ง์ ๋ชจ๋ ํ์ผ ๋์ดํ๊ธฐ
- ์ฒซ ๋ฒ์งธ ์ปค๋ฐ ์ด๊ธฐํ
- ์ถฉ๋๋ ๋ชจ๋ ํ์ผ ๋์ดํ๊ธฐ
- ํน์ ์ปค๋ฐ์์ ๋ณ๊ฒฝ๋ ๋ชจ๋ ํ์ผ ๋์ดํ๊ธฐ
- ๋ง์ง๋ง ์ปค๋ฐ ์ดํ๋ก ์คํ ์ด์ง๋์ง ์์ ๋ณ๊ฒฝ์ฌํญ ๋ณด๊ธฐ
- ์ปค๋ฐ์ ํ๊ธฐ ์ํด ์คํ ์ด์ง๋ ๋ณ๊ฒฝ์ฌํญ ๋ณด๊ธฐ
- ์คํ ์ด์ง๋ ๋ณ๊ฒฝ์ฌํญ๊ณผ ์คํ ์ด์ง๋์ง ์์ ๋ณ๊ฒฝ์ฌํญ ๋ชจ๋ ๋ณด๊ธฐ
- ์ด๋ฏธ ๋ง์คํฐ ๋ธ๋์น์ ๋จธ์ง๋ ๋ชจ๋ ๋ธ๋์น ๋์ดํ๊ธฐ
- ์ด์ ๋ธ๋์น๋ก ์ ํํ๊ธฐ
- ์ด๋ฏธ ๋ง์คํฐ ๋ธ๋์น์ ๋จธ์ง๋ ๋ชจ๋ ๋ธ๋์น๋ค ์ญ์ ํ๊ธฐ
- ๋ชจ๋ ๋ธ๋์น๋ค ๋ฐ ๊ทธ ๋ธ๋์น๋ค์ ์ ์คํธ๋ฆผ๊ณผ ๋ง์ง๋ง ์ปค๋ฐ ๋์ดํ๊ธฐ
- ์ ์คํธ๋ฆผ ๋ธ๋์น ์ค์ (ํธ๋ํน)
- ๋ก์ปฌ ๋ธ๋์น ์ญ์
- ์๊ฒฉ ๋ธ๋์น ์ญ์
- ๋ก์ปฌ ํ๊ทธ ์ญ์
- ์๊ฒฉ ํ๊ทธ ์ญ์
- ๋ก์ปฌ ๋ณ๊ฒฝ์ฌํญ์ ํค๋์ ๋ง์ง๋ง ๋ด์ฉ์ผ๋ก ๋๋๋ฆฌ๊ธฐ
- Revert: ์๋ก์ด ์ปค๋ฐ์ ์์ฑํ๋ฉด์ ์ปค๋ฐ ๋๋๋ฆฌ๊ธฐ
- Reset: ์ปค๋ฐ ์ ๊ฑฐ (ํ๋ผ์ด๋น ๋ธ๋์น์์๋ง ์ฌ์ฉํ๊ธธ ๊ถ๊ณ )
- ์ด์ ์ปค๋ฐ ๋ฉ์์ง ๋ณ๊ฒฝ
- ๋ธ๋์น์ ์ปค๋ฐ์ค ์ ์คํธ๋ฆผ์ ๋จธ์ง๋์ง ์์ ์ปค๋ฐ ํ์คํ ๋ฆฌ ๋ณด๊ธฐ
- Author ์์ ํ๊ธฐ
- ๊ธ๋ก๋ฒ ์ค์ ์์ ๋ณ๊ฒฝ๋ author๋ก author ์ฌ์ค์ ํ๊ธฐ
- ์๊ฒฉ์ง URL ๋ณ๊ฒฝํ๊ธฐ
- ๋ชจ๋ ์๊ฒฉ์ง ๋ ํผ๋ฐ์ค ๋ฆฌ์คํธ ๋์ดํ๊ธฐ
- ๋ชจ๋ ๋ก์ปฌ ๋ฐ ์๊ฒฉ์ง ๋ธ๋์น ๋์ดํ๊ธฐ
- ์๊ฒฉ์ง ๋ธ๋์น๋ง ๋์ดํ๊ธฐ
- ํ์ผ ๋ณ๊ฒฝ์ฌํญ์ ์ ์ฒด๊ฐ ์๋ ์ผ๋ถ๋ง ์คํ ์ด์งํ๊ธฐ
- git ๋ฐฐ์ ์๋์์ฑ ์ฌ์ฉํ๊ธฐ
- 2์ฃผ ์ ๋ถํฐ ํ์ฌ๊น์ง์ ๋ณ๊ฒฝ์ฌํญ ๋ณด๊ธฐ
- ๋ง์คํฐ๋ก๋ถํฐ ํฌํฌํ ์ดํ์ ์์ฑ๋ ๋ชจ๋ ์ปค๋ฐ ๋ณด๊ธฐ
- cherry-pick์ ์ฌ์ฉํด ๋ธ๋์น๊ฐ ์ปค๋ฐ ๊ฐ์ ธ์ค๊ธฐ
- ํด๋น ์ปค๋ฐ ํด์๋ฅผ ๊ฐ์ง๊ณ ์๋ ๋ธ๋์น๋ค ๊ฒ์ํ๊ธฐ
- Git ๋ช ๋ น์ด ๋ณ์นญ ์ง์
- ์ปค๋ฐํ์ง ์์ ํธ๋ํน๋ ํ์ผ๋ค์ ์ํ ์ ์ฅํ๊ธฐ
- ์คํ ์ด์ง๋์ง ์์ ๋ณ๊ฒฝ์ฌํญ๋ค์ ํ์ฌ ์ํ๋ฅผ ํธ๋ํน๋ ํ์ผ๋ก ์ ์ฅํ๊ธฐ
- ํธ๋ํน๋์ง ์์ ํ์ผ๋ค๊น์ง ๋ชจ๋ ํฌํจํด ํ์ฌ ์ํ ์ ์ฅํ๊ธฐ
- ํ์ฌ ์ํ๋ฅผ ๋ฉ์์ง์ ํจ๊ป ์ ์ฅํ๊ธฐ
- ๋ชจ๋ ๋ฌด์๋ ํ์ผ, ํธ๋ํน๋์ง ์์ ํ์ผ, ํธ๋ํน๋ ํ์ผ๋ค์ ํ์ฌ ์ํ ์ ์ฅํ๊ธฐ
- ์ ์ฅ๋ ๋ชจ๋ ์คํ์ ๋ฆฌ์คํธ ๋์ดํ๊ธฐ
- ์คํ์ ๋ฆฌ์คํธ์์ ์ญ์ ํ์ง ์๊ณ ์คํ์ ์ ์ฉํ๊ธฐ
- ๋ง์ง๋ง์ผ๋ก ์ ์ฅ๋ ์คํ์ ์ํ๋ฅผ ์ ์ฉํ๊ณ ์คํ์ ๋ฆฌ์คํธ์์ ์ญ์ ํ๊ธฐ
- ์ ์ฅ๋ ๋ชจ๋ ์คํ์ ์ญ์ ํ๊ธฐ
- ์คํ์๋ก๋ถํฐ ๋จ์ผ ํ์ผ ๊ฐ์ ธ์ค๊ธฐ
- ํธ๋ํน๋ ํ์ผ๋ค ๋ชจ๋ ๋ณด๊ธฐ
- ํธ๋ํน๋์ง ์์ ๋ชจ๋ ํ์ผ ๋ณด๊ธฐ
- ๋ฌด์๋ ํ์ผ๋ค ๋ชจ๋ ๋ณด๊ธฐ
- ์ ์ฅ์์ ์๋ก์ด ์ํน ํธ๋ฆฌ ์์ฑํ๊ธฐ (git 2.5)
- HEAD๋ก๋ถํฐ ์๋ก์ด ์ํน ํธ๋ฆฌ ์์ฑํ๊ธฐ
- ํ์ผ์ ์ญ์ ํ์ง ์๊ณ ์ธํธ๋ํนํ๊ธฐ
- ํธ๋ํน๋์ง ์์ ํ์ผ/๋๋ ํ ๋ฆฌ๋ฅผ ์ค์ ๋ก ์ญ์ ํ๊ธฐ ์ ์ ์ด๋ค ํ์ผ/๋๋ ํ ๋ฆฌ๊ฐ ์ญ์ ๋๋์ง ํ ์คํธ ํด๋ณด๊ธฐ
- ํธ๋ํน๋์ง ์์ ํ์ผ๋ค ๊ฐ์ ๋ก ์ญ์ ํ๊ธฐ
- ํธ๋ํน๋์ง ์์ ๋๋ ํ ๋ฆฌ ๊ฐ์ ๋ก ์ญ์ ํ๊ธฐ
- ๋ชจ๋ ์๋ธ ๋ชจ๋ ์ ๋ฐ์ดํธํ๊ธฐ
- ํ์ฌ ๋ธ๋์น์์ ์์ง ๋ง์คํฐ์ ๋จธ์ง๋์ง ์์ ๋ชจ๋ ์ปค๋ฐ๋ค ๋ณด๊ธฐ
- ๋ธ๋์น๋ช ์์ ํ๊ธฐ
- 'feature' ๋ธ๋์น๋ฅผ ๋ง์คํฐ์ ๋ฆฌ๋ฒ ์ด์คํ ํ ๋ง์คํฐ์ ๋จธ์งํ๊ธฐ
- ๋ง์คํฐ ๋ธ๋์น ์์นด์ด๋ธ
- ์ปค๋ฐ ๋ฉ์์ง๋ ๋ณ๊ฒฝํ์ง ์๊ณ ์ด์ ์ปค๋ฐ ๋ณ๊ฒฝํ๊ธฐ
- ์๊ฒฉ์ง์์ ์ญ์ ๋ ์๊ฒฉ ๋ธ๋์น ๋ ํผ๋ฐ์ค ์ ๊ฑฐํ๊ธฐ
- ์ฒซ ๋ฆฌ๋น์ ์ ์ปค๋ฐ ํด์๊ฐ ๊ฐ์ ธ์ค๊ธฐ
- ๋ฒ์ ํธ๋ฆฌ ์๊ฐํ
- ํธ๋ํน๋ ํ์ํด๋๋ฅผ gh-pages ๋ธ๋์น๋ก ๋ฐฐํฌํ๊ธฐ
- subtree๋ฅผ ์ฌ์ฉํด ์ ์ฅ์์ ํ๋ก์ ํธ ์ถ๊ฐํ๊ธฐ
- subtree๋ฅผ ์ฌ์ฉํด ๊ด๋ จ๋ ํ๋ก์ ํธ์ ์ต์ ๋ณ๊ฒฝ์ฌํญ์ ์ ์ฅ์๋ก ๊ฐ์ ธ์ค๊ธฐ
- ๋ธ๋์น๋ฅผ ํ์คํ ๋ฆฌ์ ํจ๊ป ํ์ผ๋ก ์ถ์ถํ๊ธฐ
- ๋ฒ๋ค ๊ฐ์ ธ์ค๊ธฐ
- ํ์ฌ ๋ธ๋์น๋ช ๊ฐ์ ธ์ค๊ธฐ
- ์ปค๋ฐ์ ํ์ผ ๋ฌด์ํ๊ธฐ (์๋ฅผ ๋ค์ด, Changelog ํ์ผ)
- ๋ฆฌ๋ฒ ์ด์ค ์ ์ ๋ณ๊ฒฝ์ฌํญ ์คํ์ํ๊ธฐ
- ID๋ก ํ ๋ฆฌํ์คํธ๋ฅผ ๋ก์ปฌ ์ ์ฅ์๋ก ๊ฐ์ ธ์ค๊ธฐ
- ํ์ฌ ๋ธ๋์น์ ๊ฐ์ฅ ์ต๊ทผ ํ๊ทธ ๋ณด๊ธฐ
- diff ์๋ ๋จ์๋ก ๋ณด๊ธฐ
- diff ๋๊ตฌ๋ฅผ ์ฌ์ฉํด ๋ณ๊ฒฝ์ฌํญ ๋ณด๊ธฐ
- ํธ๋ํน๋ ํ์ผ์ ๋ณ๊ฒฝ์ฌํญ ๋ฌด์ํ๊ธฐ
- assume-unchanged ๋๋๋ฆฌ๊ธฐ
.gitignore
์ ๋ช ์๋ ํ์ผ๋ค ์ญ์ ํ๊ธฐ- ์ญ์ ๋ ํ์ผ ๋ณต๊ตฌํ๊ธฐ
- ํน์ ์ปค๋ฐ์ผ๋ก์ ํ์ผ๋ก ๋ณต๊ตฌํ๊ธฐ
- pull์ ๋จธ์งํ๋ ๋์ ํญ์ ๋ฆฌ๋ฒ ์ด์ค ํ๊ธฐ
- ๋ชจ๋ ๋ณ์นญ๊ณผ ์ค์ ๊ฐ๋ค ๋์ดํ๊ธฐ
- ๋์๋ฌธ์ ๊ตฌ๋ณ ํ์ฑํ
- ์ปค์คํ ์๋ํฐ ์ถ๊ฐํ๊ธฐ
- ์คํ ์๋ ์์ ํ์ฑํ
- ๋ณ๊ฒฝ์ฌํญ์ด ์ด๋ค ๋ฆด๋ฆฌ์ฆ์ ์ํ๋์ง ํ์ธํ๊ธฐ
- ๋ช ๋ น์ด ํ ์คํธ ํด๋ณด๊ธฐ (dry-run ํ๋๊ทธ๋ฅผ ์ง์ํ๋ ๋ชจ๋ ๋ช ๋ น์ด์์ ๊ฐ๋ฅ)
- ์ปค๋ฐ์ด ์ด์ ์ปค๋ฐ์ ์์ ๋ฒ์ ์์ ํ์ํ๊ธฐ
- fixup ์ปค๋ฐ์ ์ผ๋ฐ ์ปค๋ฐ์ผ๋ก ์ค์ฟผ์ํ๊ธฐ
- ์ปค๋ฐ์ ์คํ ์ด์ง๋ ํ์ผ๋ค ์คํตํ๊ธฐ
- ๋ํํ์ผ๋ก ์คํ ์ด์งํ๊ธฐ
- ๋ฌด์๋ ํ์ผ๋ค ๋์ดํ๊ธฐ
- ๋ฌด์๋ ํ์ผ๋ค ์ํ ์ถ๋ ฅ
- Branch2์๋ ์๊ณ Branch1์๋ง ์๋ ์ปค๋ฐ๋ค ๋์ดํ๊ธฐ
- ๋ง์ง๋ง n๊ฐ์ ์ปค๋ฐ ๋์ดํ๊ธฐ
- ์ด์ ์ ์ถฉ๋์ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๊ธฐ๋กํ๊ณ ์ฌ์ฌ์ฉํ๊ธฐ
- ๋ชจ๋ ์ถฉ๋๋ ํ์ผ๋ค ์๋ํฐ๋ก ์ด๊ธฐ
- unpacked ์ค๋ธ์ ํธ์ ๊ฐฏ์์ ๋์คํฌ ์ฌ์ฉ๋ ๋ณด๊ธฐ
- ์ค๋ธ์ ํธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋๋ฌํ ์ ์๋ ์ค๋ธ์ ํธ๋ค ์ ๊ฑฐํ๊ธฐ
- gitweb์ผ๋ก ์ํน ๋๋ ํ ๋ฆฌ ํ์ํ๊ธฐ
- ์ปค๋ฐ ๋ก๊ทธ์์ GPG ์๊ทธ๋์ณ ๋ณด๊ธฐ
- ๊ธ๋ก๋ฒ ์ค์ ์์ ์ํธ๋ฆฌ ์ ๊ฑฐํ๊ธฐ
- ํ์คํ ๋ฆฌ๊ฐ ์๋ ์๋ก์ด ๋ธ๋์น๋ก ์ฒดํฌ์์ํ๊ธฐ
- ๋ค๋ฅธ ๋ธ๋์น์์ ํ์ผ๋ด์ฉ ๊ฐ์ ธ์ค๊ธฐ
- ๋ฃจํธ ์ปค๋ฐ๊ณผ ๋จธ์ง ์ปค๋ฐ๋ง ๋์ดํ๊ธฐ
- ๋ํํ ๋ฆฌ๋ฒ ์ด์ค๋ก ์ด์ ๋ ์ปค๋ฐ ์์ ํ๊ธฐ
- ์์ ์ค์ธ ๋ธ๋์น๋ค ๋ชจ๋ ๋์ดํ๊ธฐ
- ์ด์ง ํ์์ผ๋ก ์ข์/์์ข์ ์ปค๋ฐ ๊ฒ์ํ๊ธฐ
- pre-commit๊ณผ commit-msg ๊น ํํน ์ฐํํ๊ธฐ
- ํน์ ํ์ผ์ ๋ํ ์ปค๋ฐ๊ณผ ๋ณ๊ฒฝ์ฌํญ ๋์ดํ๊ธฐ (์ด๋ฆ์ด ๋ฐ๋ ํ์ผ๋ ์ถ์ )
- ๋จ์ผ ๋ธ๋์น ํด๋ก
- ์๋ก์ด ๋ธ๋์น ์์ฑ๊ณผ ๋์์ ์ค์์นญ
- ์ปค๋ฐ์ ํ์ผ ๋ชจ๋ ๋ณ๊ฒฝ ๋ฌด์
- Git ํฐ๋ฏธ๋ ์์ ์ถ๋ ฅ ๋นํ์ฑํ
- ํน์ ๋ช ๋ น์ด์ ๋ํ ์์ ์ค์ ์ง์ ํ๊ธฐ
- ๋ชจ๋ ๋ก์ปฌ ๋ธ๋์น๋ฅผ ์ต๊ทผ ์ปค๋ฐ ๋ ์ง๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํด ๋์ดํ๊ธฐ
- ํธ๋ํน๋ ํ์ผ์์ ํจํด(์ ๊ท์์ด๋ ๋ฌธ์์ด)์ ๋งค์นญ๋๋ ๋ผ์ธ ๊ฒ์
- ์ ์ฅ์์ ์์ ์นดํผ ๋ฒ์ ํด๋ก ํ๊ธฐ
- ๋ชจ๋ ๋ธ๋์น์์ ์ฃผ์ด์ง ํ ์คํธ๋ก ์ปค๋ฐ ๋ก๊ทธ ๊ฒ์ํ๊ธฐ
- ๋ธ๋์น์ ์ฒซ ์ปค๋ฐ ๊ฐ์ ธ์ค๊ธฐ (๋ง์คํฐ ๋ธ๋์น๋ก๋ถํฐ ์์๋)
- ์คํ ์ด์ง๋ ํ์ผ๋ค ์ธ์คํ ์ด์งํ๊ธฐ
- ์๊ฒฉ ์ ์ฅ์์ ๊ฐ์ ํธ์ํ๊ธฐ
- ์ ์ฅ์๋ช ์ถ๊ฐํ๊ธฐ
- ์ฃผ์ด์ง ํ์ผ์ ๊ฐ ๋ผ์ธ๋ณ author, ์๊ฐ ๊ทธ๋ฆฌ๊ณ ์ต์ข ๋ฆฌ๋น์ ๋ช ๋ณด๊ธฐ
- Author์ ์ ๋ชฉ์ผ๋ก ์ปค๋ฐ ๊ทธ๋ฃนํํ๊ธฐ
- ๋ค๋ฅธ ์ฌ๋์ด ์์ ํ ๋ด์ฉ์ ๋ฎ์ด์ฐ์ง ์๊ณ ๊ฐ์ ํธ์ํ๊ธฐ
- ํน์ author๊ฐ ๊ธฐ์ฌํ ๋ผ์ธ์ ๋ณด๊ธฐ
- Revert: ๋จธ์ง ๋ณต๊ตฌํ๊ธฐ
- ํน์ ๋ธ๋์น์ ์ปค๋ฐ ์ ์ถ๋ ฅํ๊ธฐ
- ๋ณ์นญ: git undo
- ์ค๋ธ์ ํธ์ ๋ ธํธ(๋ฉ๋ชจ) ์ถ๊ฐํ๊ธฐ
- ๋ชจ๋ ๊น ๋ ธํธ ๋ณด๊ธฐ
- ๋ค๋ฅธ ์ ์ฅ์์ ์๋ ์ปค๋ฐ ์ ์ฉํ๊ธฐ
- ํ์น ๋ ํผ๋ฐ์ค ์ง์ ํ๊ธฐ
- ๋ ๋ธ๋์น์ ๊ณตํต ์กฐ์ ์ปค๋ฐ ์ฐพ๊ธฐ
- ํธ์๋์ง ์์ ์ปค๋ฐ๋ค ๋์ดํ๊ธฐ
- ๊ณต๋ฐฑ ๋ณ๊ฒฝ์ฌํญ์ ์ ์ธํ ๋ชจ๋ ๋ณ๊ฒฝ์ฌํญ ์ถ๊ฐํ๊ธฐ
- ๊น ์ค์ [๋ก์ปฌ/๊ธ๋ก๋ฒ] ์์ ํ๊ธฐ
- ํน์ ๊ตฌ๊ฐ์์ blame ์ ๋ณด ๋ณด๊ธฐ
- Git์ ๋ ผ๋ฆฌ์ ๋ณ์ ๋ณด๊ธฐ
- ํจ์น ํ์ผ ๋ฏธ๋ฆฌ ํฌ๋งทํ ํ๊ธฐ
- ์ ์ฅ์๋ช ๊ฐ์ ธ์ค๊ธฐ
- ํน์ ๋ ์ง ๊ตฌ๊ฐ ์ฌ์ด์ ์ปค๋ฐ ๋ก๊ทธ ์ถ๋ ฅํ๊ธฐ
- ๋ก๊ทธ์์ author ์ ์ธํ๊ธฐ
- ๋ธ๋์น์ ์์ ์ฌํญ ์์ฝํ๊ธฐ
- ์๊ฒฉ ์ ์ฅ์์ ๋ชจ๋ ๋ ํผ๋ฐ์ค ๋์ดํ๊ธฐ
- ํธ๋ํน๋์ง ์์ ํ์ผ๋ค ๋ฐฑ์ ํ๊ธฐ
- ๋ชจ๋ git ๋ช ๋ น์ด ๋ณ์นญ ๋์ดํ๊ธฐ
- git ์ํ ๊ฐ๋ตํ๊ฒ ๋ณด๊ธฐ
- ํ๋ฃจ ์ ์ ์ปค๋ฐ์ผ๋ก ์ฒดํฌ์์ํ๊ธฐ
git help everyday
git help -g
git log -S'<a term in the source>'
git fetch origin && git reset --hard origin/master && git clean -f -d
git ls-tree --name-only -r <commit-ish>
git update-ref -d HEAD
git diff --name-only --diff-filter=U
git diff-tree --no-commit-id --name-only -r <commit-ish>
git diff
git diff --cached
๋ค๋ฅธ ๋ฐฉ๋ฒ:
git diff --staged
git diff HEAD
git branch --merged master
git checkout -
๋ค๋ฅธ ๋ฐฉ๋ฒ:
git checkout @{-1}
git branch --merged master | grep -v '^\*' | xargs -n 1 git branch -d
๋ค๋ฅธ ๋ฐฉ๋ฒ:
git branch --merged master | grep -v '^\*\| master' | xargs -n 1 git branch -d # will not delete master if master is not checked out
git branch -vv
git branch -u origin/mybranch
git branch -d <local_branchname>
git push origin --delete <remote_branchname>
๋ค๋ฅธ ๋ฐฉ๋ฒ:
git push origin :<remote_branchname>
git tag -d <tag-name>
git push origin :refs/tags/<tag-name>
git checkout -- <file_name>
git revert <commit-ish>
git reset <commit-ish>
git commit -v --amend
git cherry -v master
git commit --amend --author='Author Name <email@address.com>'
git commit --amend --reset-author --no-edit
git remote set-url origin <URL>
git remote
๋ค๋ฅธ ๋ฐฉ๋ฒ:
git remote show
git branch -a
git branch -r
git add -p
curl http://git.io/vfhol > ~/.git-completion.bash && echo '[ -f ~/.git-completion.bash ] && . ~/.git-completion.bash' >> ~/.bashrc
git log --no-merges --raw --since='2 weeks ago'
๋ค๋ฅธ ๋ฐฉ๋ฒ:
git whatchanged --since='2 weeks ago'
git log --no-merges --stat --reverse master..
git checkout <branch-name> && git cherry-pick <commit-ish>
git branch -a --contains <commit-ish>
๋ค๋ฅธ ๋ฐฉ๋ฒ:
git branch --contains <commit-ish>
git config --global alias.<handle> <command>
git config --global alias.st status
git stash
๋ค๋ฅธ ๋ฐฉ๋ฒ:
git stash save
git stash -k
๋ค๋ฅธ ๋ฐฉ๋ฒ:
git stash --keep-index
git stash save --keep-index
git stash -u
๋ค๋ฅธ ๋ฐฉ๋ฒ:
git stash save -u
git stash save --include-untracked
git stash save <message>
๋ชจ๋ ๋ฌด์๋ ํ์ผ, ํธ๋ํน๋์ง ์์ ํ์ผ, ํธ๋ํน๋ ํ์ผ๋ค์ ํ์ฌ ์ํ ์ ์ฅํ๊ธฐ
git stash -a
๋ค๋ฅธ ๋ฐฉ๋ฒ:
git stash --all
git stash save --all
git stash list
git stash apply <stash@{n}>
git stash pop
๋ค๋ฅธ ๋ฐฉ๋ฒ:
git stash apply stash@{0} && git stash drop stash@{0}
git stash clear
๋ค๋ฅธ ๋ฐฉ๋ฒ:
git stash drop <stash@{n}>
git checkout <stash@{n}> -- <file_path>
๋ค๋ฅธ ๋ฐฉ๋ฒ:
git checkout stash@{0} -- <file_path>
git ls-files -t
git ls-files --others
git ls-files --others -i --exclude-standard
git worktree add -b <branch-name> <path> <start-point>
git worktree add --detach <path> HEAD
git rm --cached <file_path>
๋ค๋ฅธ ๋ฐฉ๋ฒ:
git rm --cached -r <directory_path>
ํธ๋ํน๋์ง ์์ ํ์ผ/๋๋ ํ ๋ฆฌ๋ฅผ ์ค์ ๋ก ์ญ์ ํ๊ธฐ ์ ์ ์ด๋ค ํ์ผ/๋๋ ํ ๋ฆฌ๊ฐ ์ญ์ ๋๋์ง ํ ์คํธ ํด๋ณด๊ธฐ
git clean -n
git clean -f
git clean -f -d
๋ค๋ฅธ ๋ฐฉ๋ฒ:
git clean -df
git submodule foreach git pull
๋ค๋ฅธ ๋ฐฉ๋ฒ:
git submodule update --init --recursive
git submodule update --remote
git cherry -v master
๋ค๋ฅธ ๋ฐฉ๋ฒ:
git cherry -v master <branch-to-be-merged>
git branch -m <new-branch-name>
๋ค๋ฅธ ๋ฐฉ๋ฒ:
git branch -m [<old-branch-name>] <new-branch-name>
git rebase master feature && git checkout master && git merge -
git archive master --format=zip --output=master.zip
git add --all && git commit --amend --no-edit
git fetch -p
๋ค๋ฅธ ๋ฐฉ๋ฒ:
git remote prune origin
git rev-list --reverse HEAD | head -1
๋ค๋ฅธ ๋ฐฉ๋ฒ:
git rev-list --max-parents=0 HEAD
git log --pretty=oneline | tail -1 | cut -c 1-40
git log --pretty=oneline --reverse | head -1 | cut -c 1-40
git log --pretty=oneline --graph --decorate --all
๋ค๋ฅธ ๋ฐฉ๋ฒ:
gitk --all
git subtree push --prefix subfolder_name origin gh-pages
git subtree add --prefix=<directory_name>/<project_name> --squash git@github.com:<username>/<project_name>.git master
git subtree pull --prefix=<directory_name>/<project_name> --squash git@github.com:<username>/<project_name>.git master
git bundle create <file> <branch-name>
git clone repo.bundle <repo-dir> -b <branch-name>
git rev-parse --abbrev-ref HEAD
git update-index --assume-unchanged Changelog; git commit -a; git update-index --no-assume-unchanged Changelog
git rebase --autostash
git fetch origin pull/<id>/head:<branch-name>
๋ค๋ฅธ ๋ฐฉ๋ฒ:
git pull origin pull/<id>/head:<branch-name>
git describe --tags --abbrev=0
git diff --word-diff
git difftool -t <commit1> <commit2> <path>
git update-index --assume-unchanged <file_name>
git update-index --no-assume-unchanged <file_name>
git clean -X -f
git checkout <deleting_commit>^ -- <file_path>
git checkout <commit-ish> -- <file_path>
git config --global pull.rebase true
๋ค๋ฅธ ๋ฐฉ๋ฒ:
#git < 1.7.9
git config --global branch.autosetuprebase always
git config --list
git config --global core.ignorecase false
git config --global core.editor '$EDITOR'
git config --global help.autocorrect 1
git name-rev --name-only <SHA-1>
git clean -fd --dry-run
git commit --fixup <SHA-1>
git rebase -i --autosquash
git commit --only <file_path>
git add -i
git check-ignore *
git status --ignored
git log Branch1 ^Branch2
git log -<n>
๋ค๋ฅธ ๋ฐฉ๋ฒ:
git log -n <n>
git config --global rerere.enabled 1
git diff --name-only | uniq | xargs $EDITOR
git count-objects --human-readable
git gc --prune=now --aggressive
git instaweb [--local] [--httpd=<httpd>] [--port=<port>] [--browser=<browser>]
git log --show-signature
git config --global --unset <entry-name>
git checkout --orphan <branch_name>
git show <branch_name>:<file_name>
git log --first-parent
git rebase --interactive HEAD~2
git checkout master && git branch --no-merged
git bisect start # Search start
git bisect bad # Set point to bad commit
git bisect good v2.6.13-rc2 # Set point to good commit|tag
git bisect bad # Say current state is bad
git bisect good # Say current state is good
git bisect reset # Finish search
git commit --no-verify
git log --follow -p -- <file_path>
git clone -b <branch-name> --single-branch https://github.com/user/repo.git
git checkout -b <branch-name>
๋ค๋ฅธ ๋ฐฉ๋ฒ:
git branch <branch-name> && git checkout <branch-name>
git config core.fileMode false
git config --global color.ui false
git config --global <specific command e.g branch, diff> <true, false or always>
git for-each-ref --sort=-committerdate --format='%(refname:short)' refs/heads/
git grep --heading --line-number 'foo bar'
git clone https://github.com/user/repo.git --depth 1
git log --all --grep='<given-text>'
git log master..<branch-name> --oneline | tail -1
git reset HEAD <file-name>
git push -f <remote-name> <branch-name>
git remote add <remote-nickname> <remote-url>
git blame <file-name>
git shortlog
git push --force-with-lease <remote-name> <branch-name>
git log --author='_Your_Name_Here_' --pretty=tformat: --numstat | gawk '{ add += <!-- @doxie.inject start -->; subs += <!-- @doxie.inject end -->; loc += <!-- @doxie.inject start --> - <!-- @doxie.inject end --> } END { printf "added lines: %s removed lines: %s total lines: %s
", add, subs, loc }' -
๋ค๋ฅธ ๋ฐฉ๋ฒ:
git log --author='_Your_Name_Here_' --pretty=tformat: --numstat | awk '{ add += <!-- @doxie.inject start -->; subs += <!-- @doxie.inject end -->; loc += <!-- @doxie.inject start --> - <!-- @doxie.inject end --> } END { printf "added lines: %s, removed lines: %s, total lines: %s
", add, subs, loc }' - # on Mac OSX
git revert -m 1 <commit-ish>
git rev-list --count <branch-name>
git config --global alias.undo '!f() { git reset --hard $(git rev-parse --abbrev-ref HEAD)@{${1-1}}; }; f'
git notes add -m 'Note on the previous commit....'
git log --show-notes='*'
git --git-dir=<source-dir>/.git format-patch -k -1 --stdout <SHA1> | git am -3 -k
git fetch origin master:refs/remotes/origin/mymaster
diff -u <(git rev-list --first-parent BranchA) <(git rev-list --first-parent BranchB) | sed -ne 's/^ //p' | head -1
git log --branches --not --remotes
๋ค๋ฅธ ๋ฐฉ๋ฒ:
git log @{u}..
git cherry -v
git diff --ignore-all-space | git apply --cached
git config [--global] --edit
git blame -L <start>,<end>
git var -l | <variable>
git format-patch -M upstream..topic
git rev-parse --show-toplevel
git log --since='FEB 1 2017' --until='FEB 14 2017'
git log --perl-regexp --author='^((?!excluded-author-regex).*)
git request-pull v1.0 https://git.ko.xz/project master:for-linus
git ls-remote git://git.kernel.org/pub/scm/git/git.git
git ls-files --others -i --exclude-standard | xargs zip untracked.zip
git config -l | grep alias | sed 's/^alias\.//g'
๋ค๋ฅธ ๋ฐฉ๋ฒ:
git config -l | grep alias | cut -d '.' -f 2
git status --short --branch
git checkout master@{yesterday}