๋ ๋ฌ ๊ฐ์ ๊ฐ๋ฐ ๋์ ๋ถ์ฐ ์์ค ์ ์ด ์์คํ Git 2.35์ด ์ถ์๋์์ต๋๋ค. Git์ ๊ฐ์ฅ ์ธ๊ธฐ ์๊ณ ์์ ์ ์ธ ๊ณ ์ฑ๋ฅ ๋ฒ์ ์ ์ด ์์คํ ์ค ํ๋๋ก ๋ถ๊ธฐ ๋ฐ ๋ณํฉ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ์ ์ฐํ ๋น์ ํ ๊ฐ๋ฐ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๊ธฐ๋ก์ ๋ฌด๊ฒฐ์ฑ๊ณผ ์๊ธ ๋ณ๊ฒฝ์ ๋ํ ์ ํญ์ ๋ณด์ฅํ๊ธฐ ์ํด ๊ฐ ์ปค๋ฐ์์ ์ ์ฒด ์ด์ ๊ธฐ๋ก์ ์์์ ํด์ฑ์ด ์ฌ์ฉ๋๋ฉฐ, ๊ฐ๋ฐ์์ ๋์งํธ ์๋ช ์ ์ฌ์ฉํ์ฌ ๊ฐ๋ณ ํ๊ทธ์ ์ปค๋ฐ์ ์ธ์ฆํ๋ ๊ฒ๋ ๊ฐ๋ฅํฉ๋๋ค.
์ด์ ๋ฒ์ ์ ๋นํด ์ ๋ฒ์ ์๋ 494๊ฐ์ ๋ณ๊ฒฝ ์ฌํญ์ด ํฌํจ๋์์ผ๋ฉฐ, 93๋ช ์ ๊ฐ๋ฐ์๊ฐ ์ฐธ์ฌํ์ฌ ์ค๋นํ์ผ๋ฉฐ, ์ด ์ค 35๋ช ์ด ์ฒ์์ผ๋ก ๊ฐ๋ฐ์ ์ฐธ์ฌํ์ต๋๋ค. ์ฃผ์ ํ์ :
- SSH ํค๋ฅผ ์ฌ์ฉํ์ฌ Git ๊ฐ์ฒด์ ๋์งํธ ์๋ช ํ ์ ์๋ ๊ฐ๋ฅ์ฑ์ด ํ์ฅ๋์์ต๋๋ค. ์ฌ๋ฌ ํค์ ์ ํจ ๊ธฐ๊ฐ์ ์ ํํ๊ธฐ ์ํด OpenSSH ์ง์๋ฌธ "valid-before" ๋ฐ "valid-after"์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. ์ด๋ฅผ ํตํด ๊ฐ๋ฐ์ ์ค ํ ๋ช ์ด ํค๋ฅผ ๊ต์ฒดํ ํ ์๋ช ์ผ๋ก ์ฌ๋ฐ๋ฅธ ์์ ์ ๋ณด์ฅํ ์ ์์ต๋๋ค. ์ด์ ์๋ ๊ธฐ์กด ํค์ ์ ํค์ ์๋ช ์ ๋ถ๋ฆฌํ๋ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค. ๊ธฐ์กด ํค๋ฅผ ์ญ์ ํ๋ฉด ํด๋น ํค๋ก ์์ฑ๋ ์๋ช ์ ํ์ธํ ์ ์์ผ๋ฉฐ, ๊ทธ๋๋ก ๋๋ฉด ๊ณ์ํด์ ์๋ช ์ ํ์ธํ ์ ์์ต๋๋ค. ์ด๋ฏธ ๋ค๋ฅธ ํค๋ก ๋์ฒด๋ ์ด์ ํค๋ก ์ ์๋ช ์ ์์ฑํฉ๋๋ค. ์ ํจ ์ด์ ๋ฐ ์ ํจ ์ดํ๋ฅผ ์ฌ์ฉํ๋ฉด ์๋ช ์ด ์์ฑ๋ ์๊ฐ์ ๊ธฐ์ค์ผ๋ก ํค์ ๋ฒ์๋ฅผ ๋ถ๋ฆฌํ ์ ์์ต๋๋ค.
- ๋ณํฉ ์ค ์ถฉ๋์ ๋ํ ์ ๋ณด๋ฅผ ํ์ํ๋ ๋ชจ๋๋ฅผ ์ ํํ ์ ์๋ merge.con conflictStyle ์ค์ ์์ ์ถฉ๋์ ์์ ๋๋ ๋์์ ์ง์ ๋ ๋ชจ๋ ํ์ค ์ค์ ์ถฉ๋ ์ธ๋ถ๋ก ์ด๋ํ๋ "zdiff3" ๋ชจ๋์ ๋ํ ์ง์์ด ๋ํ๋ฌ์ต๋๋ค. ์ ๋ณด๋ฅผ ๋ณด๋ค ๊ฐ๊ฒฐํ๊ฒ ํ์ํ ์ ์๋ ์์ญ์ ๋๋ค.
- "--staged" ๋ชจ๋๊ฐ "git stash" ๋ช ๋ น์ ์ถ๊ฐ๋์์ต๋๋ค. ์ด๋ฅผ ํตํด ์ธ๋ฑ์ค์ ์ถ๊ฐ๋ ๋ณ๊ฒฝ ์ฌํญ๋ง ์จ๊ธธ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋จผ์ ๋ณต์กํ ๋ณ๊ฒฝ ์ฌํญ ์ค ์ผ๋ถ๋ฅผ ์ผ์์ ์ผ๋ก ์ฐ๊ธฐํด์ผ โโํ๋ ์ํฉ์์ ์ด๋ฏธ ์ค๋น๋ ๊ฒ์ ์ถ๊ฐํ๊ณ ์ ์ ํ์ ๋๋จธ์ง๋ฅผ ์ฒ๋ฆฌํ์ธ์. ์ด ๋ชจ๋๋ "git commit" ๋ช ๋ น๊ณผ ์ ์ฌํ๋ฉฐ ์ธ๋ฑ์ค์ ์๋ ๋ณ๊ฒฝ ์ฌํญ๋ง ๊ธฐ๋กํ์ง๋ง "git stash โstaged"์์ ์ ์ปค๋ฐ์ ์์ฑํ๋ ๋์ ๊ฒฐ๊ณผ๊ฐ ์จ๊น ์์ ์์ญ์ ์ ์ฅ๋ฉ๋๋ค. ๋ณ๊ฒฝ ์ฌํญ์ด ํ์ํ๋ฉด "git stash pop" ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ๋๋๋ฆด ์ ์์ต๋๋ค.
- "git log" ๋ช ๋ น์ "--format=%(describe)"๋ผ๋ ์๋ก์ด ํ์ ์ง์ ์๊ฐ ์ถ๊ฐ๋์์ต๋๋ค. ์ด๋ฅผ ํตํด "git log"์ ์ถ๋ ฅ๊ณผ "git explain" ๋ช ๋ น์ ์ถ๋ ฅ์ ๊ฒฐํฉํ ์ ์์ต๋๋ค. "git explain"์ ๋ํ ๋งค๊ฐ๋ณ์๋ ์ง์ ์("-format=%(describe:match= ,์ ์ธ= )"), ์ฌ๊ธฐ์๋ ๋จ์ถ ํ๊ทธ("-format=%(describe:tags=)๋ฅผ ํฌํจํ ์๋ ์์ต๋๋ค. )") ๊ฐ์ฒด๋ฅผ ์๋ณํ๊ธฐ ์ํ 8์ง์ ๋ฌธ์ ์(โโformat=%(describe:abbrev= )"). ์๋ฅผ ๋ค์ด, ํ๊ทธ์ ๋ฆด๋ฆฌ์ค ํ๋ณด ํ๊ทธ๊ฐ ์๋ ๋ง์ง๋ง 8๊ฐ ์ปค๋ฐ์ ๋์ดํ๊ณ 8์ ์๋ณ์๋ฅผ ์ง์ ํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ ์ฌ์ฉํ ์ ์์ต๋๋ค: $ git log -13 โformat='%(describe:exclude=*-rc *,abbrev=2.34.1 )' v646-4-gaf5e569f89bc2.34.1 v644-0330-g239edb24c2.33.1 v641-15-g002812f858f2.34.1 v643-2-g95b94d056b2.34.1ab v642-56-gb 95bd8 bbc7f2.34.1 v203-9-gffb2980902f2.34.1d v640-3- gdf41c212adeb2.34.1 v639-36-g65715b4132aXNUMX
- user.signingKey ์ค์ ์ ์ด์ "ssh-" ์ ํ์ผ๋ก ์ ํ๋์ง ์๊ณ ํค์ ๋ํ ์ ์ฒด ํ์ผ ๊ฒฝ๋ก๋ฅผ ์ง์ ํ๋ ์๋ก์ด ์ ํ์ ํค๋ฅผ ์ง์ํฉ๋๋ค. ๋์ฒด ์ ํ์ "key::" ์ ๋์ฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ง์ ๋ฉ๋๋ค(์: ECDSA ํค์ ๊ฒฝ์ฐ "key::ecdsa-sha2-nistp256").
- "-histogram" ๋ชจ๋์์ ๋ณ๊ฒฝ ์ฌํญ ๋ชฉ๋ก์ ์์ฑํ๋ ์๋์ ์์ ์ฐจ์ด์์ ๊ณต๋ฐฑ ๊ฐ์กฐ ํ์๋ฅผ ์ ์ดํ๋ โโ"-color-moved-ws" ์ต์ ์ ์ฌ์ฉํ ๋ ์๋๊ฐ ๋์ ๋๊ฒ ํฅ์๋์์ต๋๋ค.
- ๋ณํฉ ์ถฉ๋์ ๋ถ์ํ๊ฑฐ๋, diff๋ฅผ ๋ณด๊ฑฐ๋, ๊ฒ์ ์์ ์ ์ํํ ๋ ํ์ผ์์ ์ํ๋ ์์น๋ก์ ์ ํํ ์ ํ์ ๋ํ ์ ๋ณด๋ฅผ Vim์ ์ ๊ณตํ๋ ๋ฐ ์ฌ์ฉ๋๋ "git jump" ๋ช ๋ น์ ๋ค๋ฃจ๋ ๋ณํฉ ์ถฉ๋ ๋ฒ์๋ฅผ ์ขํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์์ ์ "foo" ๋๋ ํฐ๋ฆฌ๋ก๋ง ์ ํํ๋ ค๋ฉด "git jump merge - foo"๋ฅผ ์ง์ ํ๊ณ "Documentation" ๋๋ ํฐ๋ฆฌ๋ฅผ ์ฒ๋ฆฌ์์ ์ ์ธํ๋ ค๋ฉด "git jump merge - ':^Documentation'"์ ์ง์ ํ๋ฉด ๋ฉ๋๋ค.
- ๊ฐ์ฒด์ ํฌ๊ธฐ๋ฅผ ๋ํ๋ด๋ ๊ฐ์ ๋ํด "unsigned long" ๋์ "size_t" ์ ํ์ ์ฌ์ฉ์ ํ์คํํ๋ ์์ ์ด ์ํ๋์ด 4GB๋ณด๋ค ํฐ ํ์ผ์ ๋ํด "clean" ๋ฐ "smudge" ํํฐ๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ๋์์ต๋๋ค. LLP64 ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ฌ์ฉํ๋ ํ๋ซํผ์ ํฌํจํ ๋ชจ๋ ํ๋ซํผ์์ "unsigned long" ์ ํ์ 4๋ฐ์ดํธ๋ก ์ ํ๋ฉ๋๋ค.
- "-empty=(stop|drop|keep)" ์ต์ ์ด "git am" ๋ช ๋ น์ ์ถ๊ฐ๋์์ต๋๋ค. ์ด๋ฅผ ํตํด ๋ฉ์ผ๋ฐ์ค์์ ํจ์น๋ฅผ ๊ตฌ๋ฌธ ๋ถ์ํ ๋ ํจ์น๊ฐ ํฌํจ๋์ง ์์ ๋น ๋ฉ์์ง์ ๋ํ ๋์์ ์ ํํ ์ ์์ต๋๋ค. "stop" ๊ฐ์ ์ ์ฒด ํจ์น ์์ ์ ์ข ๋ฃํ๊ณ , "drop"์ ๋น ํจ์น๋ฅผ ๊ฑด๋๋ฐ๊ณ , "keep"์ ๋น ์ปค๋ฐ์ ์์ฑํฉ๋๋ค.
- ์ฑ๋ฅ์ ํฅ์ํ๊ณ ๊ณต๊ฐ์ ์ ์ฝํ๊ธฐ ์ํด "git Reset", "git diff", "git Blame", "git fetch", "git pull" ๋ฐ "git ls-files" ๋ช ๋ น์ ๋ถ๋ถ ์ธ๋ฑ์ค(ํฌ์ ์ธ๋ฑ์ค)์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. ๋ถ๋ถ ๋ณต์ ์์ (์คํ์ค ์ฒดํฌ์์)์ด ์ํ๋๋ ์ ์ฅ์.
- "git sparse-checkout init" ๋ช ๋ น์ ๋ ์ด์ ์ฌ์ฉ๋์ง ์์ผ๋ฉฐ "git sparse-checkout set"์ผ๋ก ๋์ฒด๋์ด์ผ ํฉ๋๋ค.
- ์ ์ฅ์์ ๋ธ๋์น ๋ฐ ํ๊ทธ์ ๊ฐ์ ์ฐธ์กฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํ ์๋ก์ด "reftable" ๋ฐฑ์๋์ ์ด๊ธฐ ๊ตฌํ์ด ์ถ๊ฐ๋์์ต๋๋ค. ์๋ก์ด ๋ฐฑ์๋๋ JGit ํ๋ก์ ํธ์์ ์ฌ์ฉํ๋ ๋ธ๋ก ์คํ ๋ฆฌ์ง๋ฅผ ์ฌ์ฉํ๋ฉฐ ๋งค์ฐ ๋ง์ ์์ ์ฐธ์กฐ๋ฅผ ์ ์ฅํ๋ ๋ฐ ์ต์ ํ๋์ด ์์ต๋๋ค. ๋ฐฑ์๋๋ ์์ง refs ์์คํ ๊ณผ ํตํฉ๋์ง ์์์ผ๋ฉฐ ์ค์ ๋ก ์ฌ์ฉํ ์ค๋น๊ฐ ๋์ง ์์์ต๋๋ค.
- "git grep" ๋ช ๋ น์ ์์ ํ๋ ํธ๊ฐ GNU grep ์ ํธ๋ฆฌํฐ์ ์ผ์นํ๋๋ก ์กฐ์ ๋์์ต๋๋ค.
์ถ์ฒ : opennet.ru