์ด์ ๋ฒ์ ์ ๋นํด ์ ๋ฒ์ ์๋ 504๊ฐ์ ๋ณ๊ฒฝ ์ฌํญ์ด ํฌํจ๋์์ผ๋ฉฐ, 64๋ช
์ ๊ฐ๋ฐ์๊ฐ ์ฐธ์ฌํ์ฌ ์ค๋นํ์ผ๋ฉฐ, ์ด ์ค 12๋ช
์ด ์ฒ์์ผ๋ก ๊ฐ๋ฐ์ ์ฐธ์ฌํ์ต๋๋ค.
- ๊ธฐ๋ณธ๊ฐ์ด ๋ค์์ผ๋ก ์ ํ๋์์ต๋๋ค.
๋ ๋ฒ์งธ ๋ฒ์ ํด๋ผ์ด์ธํธ๊ฐ Git ์๋ฒ์ ์๊ฒฉ์ผ๋ก ์ฐ๊ฒฐํ ๋ ์ฌ์ฉ๋๋ Git ํต์ ํ๋กํ ์ฝ์ ๋๋ค. ํ๋กํ ์ฝ์ ๋ ๋ฒ์งธ ๋ฒ์ ์ ์๋ฒ ์ธก์์ ๋ถ๊ธฐ ๋ฐ ํ๊ทธ๋ฅผ ํํฐ๋งํ์ฌ ํด๋ผ์ด์ธํธ์ ๋จ์ถ๋ ๋งํฌ ๋ชฉ๋ก์ ๋ฐํํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๊ฒ์ผ๋ก ์ ๋ช ํฉ๋๋ค. ์ด์ ์๋ ํด๋ผ์ด์ธํธ๊ฐ ํ๋์ ๋ธ๋์น๋ง ์ ๋ฐ์ดํธํ๊ฑฐ๋ ๋ฆฌํฌ์งํ ๋ฆฌ ๋ณต์ฌ๋ณธ์ด ์ต์ ์ธ์ง ํ์ธํ๋ ๊ฒฝ์ฐ์๋ ํ ๋ช ๋ น์ ์ฌ์ฉํ๋ฉด ํญ์ ํด๋ผ์ด์ธํธ์ ์ ์ฒด ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ ์ฒด ์ฐธ์กฐ ๋ชฉ๋ก์ ๋ณด๋ผ ์ ์์์ต๋๋ค. ๋ ๋ค๋ฅธ ์ฃผ๋ชฉํ ๋งํ ํ์ ์ ํดํท์์ ์๋ก์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๊ฒ ๋๋ฉด ํ๋กํ ์ฝ์ ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ ๊ธฐ๋ฅ์ ๋๋ค. ํด๋ผ์ด์ธํธ ์ฝ๋๋ ์ด์ ํ๋กํ ์ฝ๊ณผ ๊ณ์ ํธํ๋๋ฉฐ ์ ์๋ฒ์ ์ด์ ์๋ฒ ๋ชจ๋์์ ๊ณ์ ์๋ํ ์ ์์ผ๋ฉฐ, ์๋ฒ๊ฐ ๋ ๋ฒ์งธ ๋ฒ์ ์ ์ง์ํ์ง ์์ผ๋ฉด ์๋์ผ๋ก ์ฒซ ๋ฒ์งธ ๋ฒ์ ์ผ๋ก ๋์๊ฐ๋๋ค. - "git config" ๋ช
๋ น์ "-show-scope" ์ต์
์ด ์ถ๊ฐ๋์ด ํน์ ์ค์ ์ด ์ ์๋ ์์น๋ฅผ ๋ ์ฝ๊ฒ ์๋ณํ ์ ์์ต๋๋ค. Git์ ์ฌ์ฉํ๋ฉด ์ ์ฅ์(.git/info/config), ์ฌ์ฉ์ ๋๋ ํฐ๋ฆฌ(~/.gitconfig), ์์คํ
์ ์ฒด ๊ตฌ์ฑ ํ์ผ(/etc/gitconfig) ๋ฐ ๋ช
๋ น์ ํตํด ๋ค์ํ ์์น์์ ์ค์ ์ ์ ์ํ ์ ์์ต๋๋ค. ๋ผ์ธ ์ต์
๋ฐ ํ๊ฒฝ ๋ณ์. "git config"๋ฅผ ์คํํ ๋ ์ํ๋ ์ค์ ์ด ์ ํํ ์ด๋์ ์ ์๋์ด ์๋์ง ์ดํดํ๊ธฐ๊ฐ ๋งค์ฐ ์ด๋ ต์ต๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด "--show-origin" ์ต์
์ ์ฌ์ฉํ ์ ์์์ง๋ง ์ค์ ์ด ์ ์๋ ํ์ผ์ ๊ฒฝ๋ก๋ง ํ์ํ๋ฏ๋ก ํ์ผ์ ํธ์งํ๋ ค๋ ๊ฒฝ์ฐ์๋ ์ ์ฉํ์ง๋ง ํธ์งํ ๊ฒฝ์ฐ์๋ ๋์์ด ๋์ง ์์ต๋๋ค. "--system", "--global" ๋๋ "-local" ์ต์
์ ์ฌ์ฉํ์ฌ "git config"๋ฅผ ํตํด ๊ฐ์ ๋ณ๊ฒฝํด์ผ ํฉ๋๋ค. ์๋ก์ด ์ต์
"--show-scope"๋ ๋ณ์ ์ ์ ์ปจํ
์คํธ๋ฅผ ํ์ํ๋ฉฐ -show-origin๊ณผ ํจ๊ป ์ฌ์ฉํ ์ ์์ต๋๋ค.
$ git --list --show-scope --show-origin
์ ์ญ ํ์ผ:/home/user/.gitconfig diff.interhunkcontext=1
์ ์ญ ํ์ผ:/home/user/.gitconfig push.default=current
[โฆ] local file:.git/config branch.master.remote=origin
๋ก์ปฌ ํ์ผ:.git/config Branch.master.merge=refs/heads/master$ git config --show-scope --get-regexp 'diff.*'
์ ์ญ diff.statgraphํญ 35
๋ก์ปฌ diff.colormoved ์ผ๋ฐ$ git config --global --unset diff.statgraphwidth
- ๋ฐ์ธ๋ฉ ์ค์ ์์
์ ์์ฅ URL์ ๋ง์คํฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. Git์ ๋ชจ๋ HTTP ์ค์ ๋ฐ ์๊ฒฉ ์ฆ๋ช ์ ๋ชจ๋ ์ฐ๊ฒฐ(http.extraHeader, credential.helper)๊ณผ URL ๊ธฐ๋ฐ ์ฐ๊ฒฐ(credential.https://example.com.helper, credential.https: //example.com)์ ๋ํด ์ค์ ํ ์ ์์ต๋๋ค. com.helper). ์ง๊ธ๊น์ง *.example.com๊ณผ ๊ฐ์ ์์ผ๋์นด๋๋ HTTP ์ค์ ์๋ง ํ์ฉ๋์๊ณ ์๊ฒฉ ์ฆ๋ช ๋ฐ์ธ๋ฉ์๋ ์ง์๋์ง ์์์ต๋๋ค. Git 2.26์์๋ ์ด๋ฌํ ์ฐจ์ด์ ์ด ์ ๊ฑฐ๋์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ด์ ์ง์ ํ ์ ์๋ ๋ชจ๋ ํ์ ๋๋ฉ์ธ์ ์ฌ์ฉ์ ์ด๋ฆ์ ๋ฐ์ธ๋ฉํ ์ ์์ต๋๋ค.[์๊ฒฉ์ฆ๋ช "https://*.example.com"]
์ฌ์ฉ์ ์ด๋ฆ = taylorr
- ๋ถ๋ถ ๋ณต์ (๋ถ๋ถ ๋ณต์ )์ ๋ํ ์คํ์ ์ง์์ด ๊ณ์ ํ์ฅ๋์ด ๋ฐ์ดํฐ์ ์ผ๋ถ๋ง ์ ์กํ๊ณ ์ ์ฅ์์ ๋ถ์์ ํ ๋ณต์ฌ๋ณธ์ผ๋ก ์์
ํ ์ ์์ต๋๋ค. ์ ๋ฆด๋ฆฌ์ค์๋ "git sparse-checkout add"๋ผ๋ ์๋ก์ด ๋ช
๋ น์ด ์ถ๊ฐ๋์์ต๋๋ค. ์ด๋ฅผ ํตํด ๊ฐ๋ณ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ถ๊ฐํ์ฌ "git" ๋ช
๋ น์ ํตํด ์ด๋ฌํ ๋ชจ๋ ๋๋ ํฐ๋ฆฌ๋ฅผ ํ ๋ฒ์ ๋์ดํ๋ ๋์ ์์
ํธ๋ฆฌ์ ์ผ๋ถ์๋ง "์ฒดํฌ์์" ์์
์ ์ ์ฉํ ์ ์์ต๋๋ค. sparse-checkout set"(๋งค๋ฒ ์ ์ฒด ๋ชฉ๋ก์ ๋ค์ ์ง์ ํ์ง ์๊ณ ๋ ๋๋ ํฐ๋ฆฌ ํ๋์ฉ ์ถ๊ฐํ ์ ์์)
์๋ฅผ ๋ค์ด, Blob์ ์ปค๋ฐํ์ง ์๊ณ git/git ์ ์ฅ์๋ฅผ ๋ณต์ ํ๊ณ , ์์ ๋ณต์ฌ๋ณธ์ ๋ฃจํธ ๋๋ ํฐ๋ฆฌ๋ก๋ง ์ฒดํฌ์์์ ์ ํํ๊ณ , "t" ๋ฐ "Documentation" ๋๋ ํฐ๋ฆฌ์ ๋ํ ์ฒดํฌ์์์ ๋ณ๋๋ก ํ์ํ๋ ค๋ฉด ๋ค์์ ์ง์ ํ ์ ์์ต๋๋ค.$ git clone --filter=blob:none --sparse [์ด๋ฉ์ผ ๋ณดํธ]:git/git.git
$ CD ์์
$ git sparse-checkout init --cone$ git sparse-checkout ์ถ๊ฐ t
....
$ git sparse-checkout add ๋ฌธ์
....
$ git sparse-checkout ๋ชฉ๋ก
๋ฌธ์
t - ์ ์ฅ์์ ํ์ฌ ๋ด์ฉ๊ณผ ๊ธฐ๋ก โโ๊ฐ์ ํ์ ๋ชจ๋ ๊ฒ์ํ๋ ๋ฐ ์ฌ์ฉ๋๋ "git grep" ๋ช ๋ น์ ์ฑ๋ฅ์ด ํฌ๊ฒ ํฅ์๋์์ต๋๋ค. ๊ฒ์ ์๋๋ฅผ ๋์ด๊ธฐ ์ํด ์ฌ๋ฌ ์ค๋ ๋("git grep โthreads")๋ฅผ ์ฌ์ฉํ์ฌ ์์ ํธ๋ฆฌ์ ๋ด์ฉ์ ๊ฒ์ํ ์ ์์์ง๋ง ๊ธฐ๋ก ๊ฐ์ ํ ๊ฒ์์ ๋จ์ผ ์ค๋ ๋๋ก ์ด๋ฃจ์ด์ก์ต๋๋ค. ์ด์ ๊ฐ์ฒด ์คํ ๋ฆฌ์ง์์ ์ฝ๊ธฐ ์์ ์ ๋ณ๋ ฌํํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํจ์ผ๋ก์จ ์ด๋ฌํ ์ ํ์ด ์ ๊ฑฐ๋์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ค๋ ๋ ์๋ CPU ์ฝ์ด ์์ ๋์ผํ๊ฒ ์ค์ ๋๋ฉฐ, ์ด์ ๋๋ถ๋ถ์ ๊ฒฝ์ฐ "-threads" ์ต์ ์ ๋ช ์์ ์ผ๋ก ์ค์ ํ ํ์๊ฐ ์์ต๋๋ค.
- ํ์ ๋ช ๋ น, ๊ฒฝ๋ก, ๋งํฌ ๋ฐ "git worktree" ๋ช ๋ น์ ๊ธฐํ ์ธ์ ์ ๋ ฅ์ ๋ํ ์๋ ์์ฑ ์ง์์ด ์ถ๊ฐ๋์ด ์ ์ฅ์์ ์ฌ๋ฌ ์์ ๋ณต์ฌ๋ณธ์ผ๋ก ์์ ํ ์ ์์ต๋๋ค.
- ANSI ์ด์ค์ผ์ดํ ์ํ์ค๊ฐ โโ์๋ ๋ฐ์ ์์์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๊ฐ์กฐ ์์ "git config โcolor" ๋๋ "git diff โcolor-moved" ์ค์ ์์ ๋ฐ์ ํ๋์์ ๋ํด "--format" ์ต์ ์ ํตํด "%C(brightblue)"๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค.
- ์ ๋ฒ์ ์ ์คํฌ๋ฆฝํธ๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.
fsmonitor-๊ฐ์์ , ๋ฉ์ปค๋์ฆ๊ณผ์ ํตํฉ ์ ๊ณตํ์ด์ค๋ถ ๊ฐ์์ ํ์ผ ๋ณ๊ฒฝ ์ฌํญ ์ถ์ ๋ฐ ์ ํ์ผ ํ์ ์๋๋ฅผ ๋์ ๋๋ค. git ์ ๋ฐ์ดํธ ํ ํ์๋์ฒดํ๋ค ์ ์ฅ์์ ์ฐ๊ฒฐํ์ธ์. - ๋นํธ๋งต์ ์ฌ์ฉํ ๋ ๋ถ๋ถ ๋ณต์ ์๋๋ฅผ ๋์ด๊ธฐ ์ํ ์ต์ ํ๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.
(๋นํธ๋งต ๊ธฐ๊ณ) ์ถ๋ ฅ์ ํํฐ๋งํ ๋ ๋ชจ๋ ๊ฐ์ฒด์ ์ ์ฒด ๊ฒ์์ ๋ฐฉ์งํฉ๋๋ค. ์ด์ ๋ถ๋ถ ๋ณต์ ์ค blob ํ์ธ(โfilter=blob:none ๋ฐ โfilter=blob:limit=n)์ด ์ํ๋ฉ๋๋ค.
ํจ์ฌ ๋ ๋นจ๋ผ์ก์ต๋๋ค. GitHub๋ ๋ถ๋ถ ๋ณต์ ์ ๋ํ ์ด๋ฌํ ์ต์ ํ ๋ฐ ์คํ์ ์ง์์ด ํฌํจ๋ ํจ์น๋ฅผ ๋ฐํํ์ต๋๋ค. - "git rebase" ๋ช ๋ น์ 'patch+apply' ๋์ ๊ธฐ๋ณธ 'merge' ๋ฉ์ปค๋์ฆ(์ด์ ์๋ "rebase -i"์ ์ฌ์ฉ๋จ)์ ์ฌ์ฉํ์ฌ ๋ค๋ฅธ ๋ฐฑ์๋๋ก ์ด๋๋์์ต๋๋ค. ๋ฐฑ์๋๋ ์ฝ๊ฐ์ ์ฐจ์ด๊ฐ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ถฉ๋์ ํด๊ฒฐํ ํ ์์ ์ ๊ณ์ํ ํ(git rebase --continue) ์ ๋ฐฑ์๋๋ ์ปค๋ฐ ๋ฉ์์ง๋ฅผ ํธ์งํ๋๋ก ์ ์ํ๋ ๋ฐ๋ฉด ์ด์ ๋ฐฑ์๋๋ ๋จ์ํ ์ด์ ๋ฉ์์ง๋ฅผ ์ฌ์ฉํ์ต๋๋ค. ์ด์ ๋์์ผ๋ก ๋๋๋ฆฌ๋ ค๋ฉด "--apply" ์ต์ ์ ์ฌ์ฉํ๊ฑฐ๋ 'rebase.backend' ๊ตฌ์ฑ ๋ณ์๋ฅผ 'apply'๋ก ์ค์ ํ๋ฉด ๋ฉ๋๋ค.
- .netrc๋ฅผ ํตํด ์ง์ ๋ ์ธ์ฆ ๋งค๊ฐ๋ณ์์ ๋ํ ์ฒ๋ฆฌ๊ธฐ์ ์๊ฐ ์ฆ์ ์ฌ์ฉํ๊ธฐ์ ์ ํฉํ ํ์์ผ๋ก ์ถ์๋์์ต๋๋ค.
- ๋์งํธ ์๋ช ํ์ธ์ ์ํํ๋ ๋ค์ํ ์์์ ๋ํ ์ต์ ์ ๋ขฐ ์์ค์ ์ค์ ํ๊ธฐ ์ํด gpg.minTrustLevel ์ค์ ์ ์ถ๊ฐํ์ต๋๋ค.
- "git rm" ๋ฐ "git stash"์ "--pathspec-from-file" ์ต์ ์ ์ถ๊ฐํ์ต๋๋ค.
- SHA-2 ๋์ SHA-1 ํด์ฑ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก์ ์ ํ์ ์ค๋นํ๋ฉด์ ํ ์คํธ ์ค์ํธ ๊ฐ์ ์ด ๊ณ์๋์์ต๋๋ค.
์ถ์ฒ : opennet.ru