2.36๊ฐ์ ๊ฐ์ ๊ฐ๋ฐ ๋์ ๋ถ์ฐ ์์ค ์ ์ด ์์คํ ์ธ Git XNUMX์ด ์ถ์๋์์ต๋๋ค. Git์ ๊ฐ์ฅ ์ธ๊ธฐ ์๊ณ ์์ ์ ์ธ ๊ณ ์ฑ๋ฅ ๋ฒ์ ์ ์ด ์์คํ ์ค ํ๋๋ก ๋ถ๊ธฐ ๋ฐ ๋ณํฉ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ์ ์ฐํ ๋น์ ํ ๊ฐ๋ฐ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๊ธฐ๋ก์ ๋ฌด๊ฒฐ์ฑ๊ณผ ์๊ธ ๋ณ๊ฒฝ์ ๋ํ ์ ํญ์ ๋ณด์ฅํ๊ธฐ ์ํด ๊ฐ ์ปค๋ฐ์์ ์ ์ฒด ์ด์ ๊ธฐ๋ก์ ์์์ ํด์ฑ์ด ์ฌ์ฉ๋๋ฉฐ, ๊ฐ๋ฐ์์ ๋์งํธ ์๋ช ์ผ๋ก ๊ฐ๋ณ ํ๊ทธ์ ์ปค๋ฐ์ ์ธ์ฆํ๋ ๊ฒ๋ ๊ฐ๋ฅํฉ๋๋ค.
์ด์ ๋ฒ์ ๊ณผ ๋น๊ตํ์ฌ 717๊ฐ์ ๋ณ๊ฒฝ ์ฌํญ์ด ์ ๋ฒ์ ์ ์ฑํ๋์์ผ๋ฉฐ, 96๋ช ์ ๊ฐ๋ฐ์๊ฐ ์ฐธ์ฌํ์ฌ ์ค๋นํ์ผ๋ฉฐ, ์ด ์ค 26๋ช ์ด ์ฒ์์ผ๋ก ๊ฐ๋ฐ์ ์ฐธ์ฌํ์ต๋๋ค. ์ฃผ์ ํ์ :
- "git log" ๋ฐ "git show" ๋ช
๋ น์๋ ์ด์ "-remerge-diff" ์ต์
์ด ์์ด ์ ์ฒด ๋ณํฉ ๊ฒฐ๊ณผ์ "merge" ๋ช
๋ น์ ์ฒ๋ฆฌํ ํ ์ปค๋ฐ์ ๋ฐ์๋ ์ค์ ๋ฐ์ดํฐ ๊ฐ์ ์ฐจ์ด๋ฅผ ํ์ํ ์ ์์ต๋๋ค. ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ณํฉ ์ถฉ๋์ ํด๊ฒฐํ ๊ฒฐ๊ณผ ๋ณ๊ฒฝ ์ฌํญ์ ๋ช
ํํ๊ฒ ํ๊ฐํ ์ ์์ต๋๋ค. ์ผ๋ฐ์ ์ธ "git show" ๋ช
๋ น์ ๋ค์ํ ์ถฉ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ค์ฌ์ฐ๊ธฐํ์ฌ ๋ณ๊ฒฝ ์ฌํญ์ ์ดํดํ๊ธฐ ์ด๋ ต๊ฒ ๋ง๋ญ๋๋ค. ์๋ฅผ ๋ค์ด ์๋ ์คํฌ๋ฆฐ์ท์์ ๋ค์ฌ์ฐ๊ธฐ๊ฐ ์๋ "+/-" ์ค์ ์ฒซ ๋ฒ์งธ ๋ถ๊ธฐ์ ์ฃผ์์์ sha1์ ์ด๋ฆ์ oid๋ก ๋ฐ๊พธ๋ ๊ฒ๊ณผ ๊ด๋ จ๋ ์ถฉ๋์ ๋ง์ง๋ง ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ฃผ๊ณ ๋ค์ฌ์ฐ๊ธฐ๊ฐ ์๋ "+/-"๋ ์ด๊ธฐ dwim_ref() ํจ์์ ๋ ๋ฒ์งธ ๋ถ๊ธฐ์ ์ถ๊ฐ ์ธ์์ ์ถํ์ผ๋ก ์ธํ ์ถฉ๋ ํด๊ฒฐ.
"--remerge-diff" ์ต์ ์ ์ฌ์ฉํ๋ฉด ์์ ๋ธ๋์น๋ณ๋ก ์ถฉ๋ ํด๊ฒฐ ์ฐจ์ด๋ฅผ ๊ตฌ๋ถํ์ง ์๊ณ ๋ณํฉ ์ถฉ๋์ด ๋ฐ์ํ ํ์ผ๊ณผ ์ถฉ๋์ด ํด๊ฒฐ๋ ํ์ผ์ ์ ์ฒด์ ์ธ ์ฐจ์ด์ ์ ๋ณด์ฌ์ค๋ค.
- fsync() ํจ์ ํธ์ถ์ ํตํด ๋์คํฌ ์บ์ ํ๋ฌ์ ๋์์ ๊ตฌ์ฑํ๋ ์ ์ฐ์ฑ์ด ํฅ์๋์์ต๋๋ค. ์ด์ ์ ์ฌ์ฉ ๊ฐ๋ฅํ core.fsyncObjectFiles ๋งค๊ฐ๋ณ์๋ ๋ ๊ฐ์ ๊ตฌ์ฑ ๋ณ์ core.fsync ๋ฐ core.fsyncMethod๋ก ๋ถํ ๋์ด ๊ฐ์ฒด ํ์ผ(.git/objects)๋ฟ๋ง ์๋๋ผ ๋งํฌ( .git /refs), reflog ๋ฐ ํฉ ํ์ผ.
core.fsync ๋ณ์๋ฅผ ์ฌ์ฉํ๋ฉด ์ฐ๊ธฐ ์์ ํ์ fsync๊ฐ ์ถ๊ฐ๋ก ํธ์ถ๋ ๋ด๋ถ Git ๊ตฌ์กฐ ๋ชฉ๋ก์ ์ง์ ํ ์ ์์ต๋๋ค. core.fsyncMethod ๋ณ์๋ฅผ ์ฌ์ฉํ๋ฉด ์บ์๋ฅผ ํ๋ฌ์ํ๋ ๋ฐฉ๋ฒ์ ์ ํํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด fsync๋ฅผ ์ ํํ์ฌ ๋์ผํ ์ด๋ฆ์ ์์คํ ํธ์ถ์ ์ฌ์ฉํ๊ฑฐ๋ writeout-only๋ฅผ ์ง์ ํ์ฌ ํ์ด์ง ์บ์ ์ฐ๊ธฐ ์ ์ฅ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ๋ค๋ฅธ ์ฌ์ฉ์๊ฐ .git ๋๋ ํฐ๋ฆฌ๋ฅผ ๊ณต์ ์น์ ์ผ๋ก ๋์ฒดํ๋ ๊ฒ์ ์กฐ์ํ๋ ์ทจ์ฝ์ ์ผ๋ก๋ถํฐ ๋ณดํธํ๊ธฐ ์ํด ์ ์ฅ์ ์์ ์ ํ์ธ์ด ๊ฐํ๋์์ต๋๋ค. ์ด์ ๋ชจ๋ git ๋ช ๋ น ์คํ์ ์์ฒด ".git" ๋๋ ํฐ๋ฆฌ์์๋ง ํ์ฉ๋ฉ๋๋ค. ์ ์ฅ์๊ฐ ์๋ ๋๋ ํฐ๋ฆฌ๊ฐ ๋ค๋ฅธ ์ฌ์ฉ์์๊ฒ ์ํ ๊ฒฝ์ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์ค๋ฅ๊ฐ ํ์๋ฉ๋๋ค. safe.directory ์ค์ ์ ์ฌ์ฉํ์ฌ ์ด ๋์์ ๋นํ์ฑํํ ์ ์์ต๋๋ค.
- Git ๊ฐ์ฒด์ ์์ค ์ฝํ ์ธ ๋ฅผ ์ถ๋ ฅํ๊ธฐ ์ํ "git cat-file" ๋ช ๋ น์ ์ด์ ์ ์ฌ์ฉ ๊ฐ๋ฅํ "--batch" ๋ฐ "--batch-check"๋ฅผ ๋ณด์ํ๋ "--batch-command" ์ต์ ์ผ๋ก ๋ณด์๋์์ต๋๋ค. โ ๋ช ๋ น์ ์ฝํ ์ธ ๋ฅผ ํ์ํ๊ธฐ ์ํด โcontent <๊ฐ์ฒด>โ๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ๊ฐ์ฒด์ ๋ํ ์ ๋ณด๋ฅผ ํ์ํ๊ธฐ ์ํด โinfo <object>โ๋ฅผ ์ฌ์ฉํ์ฌ ์ถ๋ ฅ ์ ํ์ ์ ์์ ์ผ๋ก ์ ํํ ์ ์๋ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋ํ ์ถ๋ ฅ ๋ฒํผ๋ฅผ ํ๋ฌ์ํ๋ "flush" ๋ช ๋ น์ด ์ง์๋ฉ๋๋ค.
- ๊ฐ์ฒด ํธ๋ฆฌ์ ๋ด์ฉ ๋ชฉ๋ก์ ์์ฑํ๊ธฐ ์ํ "git ls-tree" ๋ช ๋ น์ "-name-only"์ ์ ์ฌํ๊ฒ "-oid-only"("-object-only") ์ต์ ์ด ์ถ๊ฐ๋์์ต๋๋ค. โ, ์คํฌ๋ฆฝํธ ํธ์ถ์ ๋จ์ํํ๊ธฐ ์ํด ๊ฐ์ฒด ์๋ณ์๋ง ํ์ํฉ๋๋ค. ๋ํ ๋ชจ๋, ์ ํ, ์ด๋ฆ ๋ฐ ํฌ๊ธฐ์ ๋ํ ์ ๋ณด๋ฅผ ๊ฒฐํฉํ์ฌ ์์ ๋ง์ ์ถ๋ ฅ ํ์์ ์ ์ํ ์ ์๋ "--format" ์ต์ ๋ ๊ตฌํ๋์์ต๋๋ค.
- "git bisect run" ๋ช ๋ น์ ์คํฌ๋ฆฝํธ์ ๋ํ ์คํ ํ์ผ ํ๋๊ทธ๋ฅผ ์ค์ ํ์ง ์๊ณ ์ด ๊ฒฝ์ฐ ์ฝ๋ 126 ๋๋ 127๊ณผ ํจ๊ป ์ค๋ฅ๋ฅผ ํ์ํ๋ ๊ฐ์ง๋ฅผ ๊ตฌํํฉ๋๋ค(์ด์ ์๋ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ ์ ์๋ ๊ฒฝ์ฐ ๋ชจ๋ ๊ฐ์ ํ์ ๋ฌธ์ ๊ฐ ์๋ ๊ฒ์ผ๋ก ํ์๋์์ต๋๋ค). .
- ๋ก์ปฌ ์์คํ ์ ์ด๋ฏธ ์๋ ์ฝํ ์ธ ์ ๋ํด ์๋๋ฐฉ์๊ฒ ์๋ฆฌ์ง ์๊ณ ๋ชจ๋ ๊ฐ์ฒด๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ์ํด "git fetch" ๋ช ๋ น์ --refetch ์ต์ ์ ์ถ๊ฐํ์ต๋๋ค. ์ด ๋์์ ๋ก์ปฌ ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ์ด ๋ถํ์คํ ๋ ์ค๋ฅ๋ฅผ ๋ณต๊ตฌํ๋ ๋ฐ ์ ์ฉํ ์ ์์ต๋๋ค.
- "git update-index", "git checkout-index", "git read-tree" ๋ฐ "git clean" ๋ช ๋ น์ ์ด์ ๋ถ๋ถ ์ธ๋ฑ์ค(ํฌ์ ์ธ๋ฑ์ค)๋ฅผ ์ง์ํ์ฌ ์ฑ๋ฅ์ ํฅ์์ํค๊ณ ๋ถ๋ถ ์์ ์ด ์ํ๋๋ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๊ณต๊ฐ์ ์ ์ฝํฉ๋๋ค. (์คํ์ค ์ฒดํฌ์์).
- "git clone โfilter=... โrecurse-submodules" ๋ช ๋ น์ ๋์์ด ๋ณ๊ฒฝ๋์ด ์ด์ ํ์ ๋ชจ๋์ด ๋ถ๋ถ์ ์ผ๋ก ๋ณต์ ๋ฉ๋๋ค(์ด์ ์๋ ์ด๋ฌํ ๋ช ๋ น์ ์คํํ ๋ ํํฐ๊ฐ ๊ธฐ๋ณธ ์ฝํ ์ธ ์๋ง ์ ์ฉ๋์๊ณ ํ์ ๋ชจ๋์ ํํฐ๋ฅผ ๊ณ ๋ คํ์ง ์๊ณ ์์ ํ ๋ณต์ ๋์์ต๋๋ค).
- "git Bundle" ๋ช ๋ น์๋ ๋ถ๋ถ ๋ณต์ ์์ ๊ณผ ์ ์ฌํ๊ฒ ์ฝํ ์ธ ๋ฅผ ์ ํ์ ์ผ๋ก ๋ฐฐ์นํ๊ธฐ ์ํ ํํฐ ์ง์ ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- ํ์ ๋ชจ๋์ ์ฌ๊ท์ ์ผ๋ก ํ์ํ๊ธฐ ์ํด "git Branch" ๋ช ๋ น์ "--recurse-submodules" ์ต์ ์ ์ถ๊ฐํ์ต๋๋ค.
- Userdiff๋ Kotlin ์ธ์ด๋ฅผ ์ํ ์๋ก์ด ํธ๋ค๋ฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ถ์ฒ : opennet.ru