git
Git
Git์ ํํ์ด์ง์ ๋ฐ๋ฅด๋ฉด ์๊ท๋ชจ ํ๋ก์ ํธ๋ถํฐ ๋๊ท๋ชจ ํ๋ก์ ํธ๊น์ง ๋ชจ๋ ๊ฒ์ ๋น ๋ฅด๊ณ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ๋๋ก ์ค๊ณ๋ ๋ฌด๋ฃ ์คํ ์์ค
๋ถ์ฐ ๋ฒ์ ์ ์ด ์์คํ
์ด๋ผ๊ณ ์ค๋ช
๋์ด ์๋ค.
Github, GitLab, bitbucket
๋ํ์ ์ธ Git์ ์ฅ์๋ก Git์ ์ฌ์ฉํ๋ ํ๋ก์ ํธ๋ฅผ ์ง์ํ๋ ์นํธ์คํ ์๋น์ค์ด๋ค.
Git ๋ช
๋ น์ด
์ค์ /์ด๊ธฐํ
config
์ฌ์ฉ์๋ช ๊ตฌ์ฑ : git config (--global) user.name "name"
์ด๋ฉ์ผ ์ค์ : git config (--global) user.email "email"
์ค์ ์ ๋ณด ์กฐํ : git config (--global) --list
ํฐ๋ฏธ๋์ ํ์๋๋ ๋ฉ์์ง์ ์นผ๋ผ๋ฅผ ํ์ํด์ค : git config --global color.ui โautoโ
alias ๋ฑ๋ก : git config --global alias.
๋ณ์นญ
'!์ ์ฉํ ๋ช ๋ น์ด'
remote
์๊ฒฉ ์ ์ฅ์ ์ถ๊ฐ : git remote add <remote ๋ณ์นญ> <์ ์ฅ์ url>
์๊ฒฉ ์ ์ฅ์ ๋ณ๊ฒฝ : git remote set-url <remote ๋ณ์นญ> <์ ์ฅ์ url>
์๊ฒฉ ์ ์ฅ์ ๋ณ์นญ ๋ด์ญ ํ์ธ : git remote -v
์๊ฒฉ ์ ์ฅ์ ๋ณ์นญ ์ ๊ฑฐ : git remote rm ์๊ฒฉ์ ์ฅ์ ๋ณ์นญ
๊ธฐ๋ณธ ๋ช
๋ น์ด
์๋ก์ด ํ์ผ ์ถ๊ฐ : git add <ํ์ผ๋ช ๋ค์ด๋ '.'>
commit
addํ ํ์ผ์ ๋ํด commit ๋ฉ์์ง ์ถ๊ฐ : git commit -m "๋ฉ์์ง"
๋ชจ๋ ๋ณ๊ฒฝ๋ ํ์ผ์ ๋ํด commit ๋ฉ์์ง ์ถ๊ฐ : git commit -am "๋ฉ์์ง"
๋ง์ง๋ง ์ปค๋ฐ ๊ณ ์น๊ธฐ : git commit -m "๋ฉ์์ง" --amend
push : ๋ก์ปฌ ์ ์ฅ์์ commit๋ ํ์ผ์ ์๊ฒฉ์ ์ฅ์์ ๋ฐ์ํ๊ธฐ git push <remote ๋ณ์นญ> <
branch
>pull : ์๊ฒฉ์ ์ฅ์์์ ๋ก์ปฌ ์ ์ฅ์๋ก ๊ฐ์ ธ์ค๊ธฐ git pull <remote ๋ณ์นญ> <
branch
>pull์ fetch์ merge๊ฐ ํฉ์ณ์ง ๋ช ๋ น์ด
fetch : ์๊ฒฉ ์ ์ฅ์์์ ํฉ์น์ง ์๊ณ ๋ก์ปฌ์ ์ฅ์๋ก ๊ฐ์ ธ์ค๊ธฐ git fetch <remote ๋ณ์นญ>
merge : ๋ค๋ฅธ branch๋ฅผ ํ์ฌ checkout๋ ๋ธ๋์น์ mergeํ๋ ๋ช ๋ น git merge <
branch
>merge์ ์ถฉ๋์ผ์ด๋ฌ์ ๋ merge์ ์ผ๋ก ๋๋๋ฆฌ๊ธฐ : git merge --abort
stash : ํ๋ ์์ ์ ์์๋ก ์ ์ฅ ํด๋๋ ๋ช ๋ น์ด
git statsh list : stash ๋ชฉ๋ก ํ์ธ
git stash apply [stash์ด๋ฆ] --index : ์์ ์ ๋ค์ ๊ฐ์ ธ์ค๊ธฐ
git stash drop [stash์ด๋ฆ] : ์คํ์์ stash ์ ๊ฑฐ
git stash pop : apply + drop ํํ
git stash show -p | git apply -R : stash ์ ์ฉํ ๊ฒ์ ๋ณต๊ตฌ
๋ธ๋์น
branch : branch๋ฅผ ๋ค๋ฃจ๋ ๋ช ๋ น์ด
branch ์์ฑ : git branch <branch ๋ช >
branch ์ญ์ : git branch -D <branch ๋ช >
๋ก์ปฌ ์ ์ฅ์์ branch ์กฐํ : git branch
์๊ฒฉ ์ ์ฅ์ branch ์กฐํ : git branch -r
๋ก์ปฌ,์๊ฒฉ ๋ชจ๋ ์กฐํ : git branch -a
์๋ก์ด ๋ธ๋์น๋ก ๋ฎ์ด์ฐ๊ธฐ : git branch -f <๊ธฐ์กด branch> <์๋ก์ด branch>
checkout : branch๋ฅผ ์ด๋ํ๋ ๋ช ๋ น์ด
branch ์ด๋ : git checkout <branch ๋ช >
์๊ฒฉ ์ ์ฅ์์ branch๋ก checkoutํ๋ฉด ์์ค์ฝ๋๋ค์ ์กฐํํ๊ณ ๋ณ๊ฒฝํ ์ ์์ง๋ง, commit/push ํ ์ ์๊ณ ๋ค๋ฅธ branch๋ก checkout์์ branch๋ ๋ก์ปฌ์์ ์ฌ๋ผ์ง๋ค.
branch ๋ง๋ค๋ฉด์ ์ด๋ : git checkout -b <branch ๋ช >
ํน์ branch๋ก๋ถํฐ ์๋ก์ด ๋ธ๋์น ์์ฑ : git checkout -b <์๋ก์ด branch ๋ช > <ํน์ branch>
๋ธ๋์น๋ช ๋ณ๊ฒฝ : git checkout -m <๊ธฐ์กด ๋ธ๋์น> <์๋ก์ด ๋ธ๋์น>
์๊ฒฉ ์ ์ฅ์์ ํน์ branch๋ฅผ ๋ก์ปฌ์ ๊ฐ์ ธ์ค๊ธฐ : git checkout -t <remote๋ณ์นญ/branch๋ช >
์๋ฌ๊ฐ ๋ฐ์ํ๋ค๋ฉด
git remote update
๋ฅผ ํตํด ์๊ฒฉ ์ ์ฅ์๋ฅผ ์ต์ ์ํ๋ก ๊ฐฑ์
git ์ํ ๋ณด๊ธฐ
log
๋ชจ๋ log๋ณด๊ธฐ : git log
ํจ์น์ ํจ๊ป log ํ์ : git log -p
ํน์ ๊ฐ์์ ํญ๋ชฉ๋ง log ๋ณด๊ธฐ : git log -์ซ์
ํน์ ์๊ฐ๋์์ log ๋ณด๊ธฐ : git log --since "6 hours"
ํน์ ๋ ์ง์ ๊น์ง์ log ๋ณด๊ธฐ : git log --before "2 days"
์ปค๋ฐ ๋ด์ฉ์ ํ์ค๋ก ์์ถํ์ฌ ํ์ : git log --oneline
diff
ํ์ฌ ์์ ํธ๋ฆฌ์ ์ธ๋ฑ์ค ์ฐจ์ด์ ๋ณด๊ธฐ : git diff
์ธ๋ฑ์ค์ ์ ์ฅ์ ์ฐจ์ด์ ๋ณด๊ธฐ : git diff --cached
์์ ํธ๋ฆฌ์ ์ ์ฅ์ ์ฐจ์ด์ ๋ณด๊ธฐ : git diff HEAD
status
์์ ํธ๋ฆฌ ์ํ ํ์ : git stauts
์งง์ ํ์์ผ๋ก ํ์ : git status -s
์ถ์ ๋์ง ์์ ํ์ผ๋ ํ์ : git status -u
reset
git add ์ดํ์ ๋ณ๊ฒฝ ๋ด์ญ ๋๋๋ฆฌ๊ธฐ : git reset HEAD
ํน์ commit์ดํ์ ๋ชจ๋ ๋ด์ญ์ ์ญ์ ํ๊ณ ๋๋์๊ฐ๊ธฐ : git reset --hard <commit ๊ฐ>
์ข์ git commit ๋ฉ์์ง ์์ฑ
๋๋ช ์ฌ๋ณด๋ค ์๋ฏธ๋ฅผ ์ํํํ๋ ๋ช ์ฌ๋ฅผ ์ฌ์ฉ
๊ด์ฌ ์ฌ์ฉ X (a,an,the)
๋ถ์ ๋ฌธ
Don't
์ฌ์ฉ
์ข์ commit ์ ์ํ ์์ด ๋จ์ด ๋ชฉ๋ก
Fix : ์์
์คํ ์์ : Fix typo
A๋ฅผ ์์ : Fix A
B์ A๋ฅผ ์์ : Fix A in B
B๋ฅผ ์ํด A๋ฅผ ์์ : Fix A to B
A๋ฅผ ์์ ํด์ B๊ฐ ๋๋ค : Fix A so that B
B์ฒ๋ผ ๋ฐ์ํ๋ A๋ฅผ ์์ : Fix A where B
B์ผ๋ ๋ฐ์ํ๋ A๋ฅผ ์์ : Fix A when B
Set : ๋ณ์ ๊ฐ์ ๋ณ๊ฒฝ๋ฑ ์์ ์์
Refactor : ์ ๋ฉด ์์
Improve : ํธํ์ฑ,์ฑ๋ฅ,์ ๊ทผ์ฑ ๋ฑ ํฅ์์ด ์์ ๋
Simplify : ์ฝ๋ ๋จ์ํ
Update : ์๋ชป๋๊ฒ ์์ ์ด ์๋ ์์ ,์ถ๊ฐ, ๋ณด์
A๋ฅผ B๋ก ์ ๋ฐ์ดํธ : Update A to B
Revise : ๋ฌธ์์ ๊ฐ์ ์ด ์์ ๋
Add : ์๋กญ๊ฒ ์ถ๊ฐํ๊ฑฐ๋ ๋ง๋ ๊ฒ
B๋ฅผ ์ํด A๋ฅผ ์ถ๊ฐ : Add A for B
B์ A๋ฅผ ์ถ๊ฐ : Add A to B
Implement : Add์ ๋นํด ๋ ํฐ ๋จ์์ ์ฝ๋์ ์ฌ์ฉ ( ํ๋์ ๊ธฐ๋ฅ )
Make : ๊ธฐ์กด ๋์์ ๋ณ๊ฒฝ
A๋ฅผ Bํ๊ฒ ๋ง๋ฌ : Make A B
Remove : ์ญ์
B์์ A๋ฅผ ์ญ์ : Remove A from B
Use : ์ฌ์ฉ
B์ A๋ฅผ ์ฌ์ฉ : Use A for B
B๊ฐ ๋๋๋ก A๋ฅผ ์ฌ์ฉ : Use A to B
B์์ A๋ฅผ ์ฌ์ฉ : Use A in B
Correct : ๋ฌธ๋ฒ์ ์ค๋ฅ๋ ํ์ ๋ณ๊ฒฝ,์ด๋ฆ ๋ณ๊ฒฝ
Ensure : ํ์คํ ๋ณด์ฅ๋ฐ๋๋ก ํจ
Prevent : ํน์ ํ ์ฒ๋ฆฌ๋ฅผ ๋ชปํ๊ฒ ๋ง์
Avoid : ํน์ ํ ์ฒ๋ฆฌ๋ฅผ ํํผํ๊ฒ ํจ
Move : ์ฝ๋์ ์ด๋
Rename : ์ด๋ฆ ๋ณ๊ฒฝ
Verify : ํน์ ๊ธฐ๋ฅ์ ๊ฒ์ฆ
Pass : ํ๋ผ๋ฏธํฐ ๋๊ธฐ๋ ์ฒ๋ฆฌ์ ์ฌ์ฉ
A๋ฅผ B๋ก ๋๊น : Pass A to B
Reference
https://blog.ull.im/engineering/2019/03/10/logs-on-git.html https://git-scm.com/docs
Last updated