2023. 9. 9. 06:21ใ0. TiL ( Today I Learned )
ํ์ดํ๋ก๊ทธ๋จ์ ํ๋ฉด์ GIthub์ ์ฌ์ฉํ ์ผ์ด ๋ง์๋ค. ์ค์ ๋ก github์ ์ฌ์ฉํ์ง ๋ชปํ๋ฉด ์ ๋ฌด๋ฅผ ํ๋ฉด์๋ ๋ถํธํจ์ด ๋ง๋ค๊ณ ํด์ ์์ ์ ํ๋ฉด์๋
๋ง์ด ์ฌ์ฉํ๋ ค ๋ ธ๋ ฅํ๋๋ฐ ํผ์ ์ปค๋ฐํ๋ ์ผ์๋ ํฌ๊ฒ ์ด๋ ค์์ด ์์ง๋ง ํ์ดํ๋ก๋จ, ํ ํ๋ก๊ทธ๋จ์ ํ๋ฉด์ ๋ธ๋ฐ์น๋ฅผ ๋ง๋ค๊ณ ํฉ์น๋ ๊ณผ์ ๋ค์ ํ๋ฉด
์ถฉ๋์ด ์ผ์ด๋๊ณ ์ด๋๊ฐ ์ต์ํ์ง ์๋ค. ํ์ง๋ง Github์ ์ฌ์ฉํ๋ ๋ชฉ์ ์์ฒด๊ฐ ์ ๋ฌด๋ฅผ ๊ณต์ ํ๊ณ ๋๋๊ธฐ ์ํ๋ ๊ฒ์ด๋ ๊พธ์คํ ๊ณต๋ถํด์ผ๊ฒ ๋ค.
์๋๋ ์์ฃผ ์ฌ์ฉํ๋ ๋ช ๋ น์ด๋ค์ ๋ชจ์๋ดค๋ค. ๋, ์์ฝ๋์ 2์๊ฐ์ด ๋๋ ( ์ด๋ฐ ๋ฌด๋ฃ๊ฐ์๋ ์ฌ๋์ ๋๋ค.. ์ง์ง ๋น*๊ณผ ์๊ธ* ) ์ ํ๋ธ์์๋ ํจ๊ป ์ฒจ๋ถํด ๋ณธ๋ค.
( * ๋ฌผ๋ก ๋๋ ๊ธธ์ด์ ์ ์ฒด๋ฅผ ๋ณด์ง ๋ชปํ๊ณ , ์ฑํฐ์์ ์ค์ํ ๋ถ๋ถ๋ง ๋ณด์๋ค. )
GIt ๋ช ๋ น์ด ๋ชจ์. Zip
1) git์ผ๋ก ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ํ ๊ฒฝ๋ก์์ ์ฌ์ฉ. git์ ํด๋๊ฐ ์์ฑ
giti init
2) git ํ๋ก์ ํธ์์ ํ์ผ์ ์ํ๋ฅผ ๋ณด์ฌ์ค๋ค.
์ฐธ๊ณ URL :https://dololak.tistory.com/303
git status
3) ํ์ผ์ ๋ณ๊ฒฝ ๋ด์ฉ์ ์คํ ์ด์ง ์์ญ(staging area)์ ์ถ๊ฐํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๋ช ๋ น์ด. ์คํ ์ด์ง ์์ญ์ผ๋ก ์ถ๊ฐ๋ ๋ณ๊ฒฝ ์ด๋ ฅ๋ง commit ํ ์ ์๋ค.
# ๋ชจ๋ ๋ณ๊ฒฝ์ ์ถ๊ฐ
git add -A
# ํ์ฌ ๊ฒฝ๋ก์ ๋ชจ๋ ๋ณ๊ฒฝ์ ์ถ๊ฐ
git add .
# README.md ํ์ผ๋ง ์ถ๊ฐ
git add README.md
4) ํ์ผ์ ์ง์ฐ๊ฑฐ๋ ์คํ ์ด์ง์์ ํด์ ํ ๋ ์ฌ์ฉ ํ ์ ์๋ค.
# ํ์ผ ์ญ์
git rm README.md
# README.md ํ์ผ์ ์ถ์ ๋์ง ์์ ์ํ๋ก ๋ง๋ฆ
git rm --cached README.md
5) ์ํน ํธ๋ฆฌ(Working tree)์ ๋ณ๊ฒฝ๋ ํ์ผ์ ๋ณต์ํด ์ฃผ๋ ์ญํ
# Unstaged ์ํ์ ๋ณ๊ฒฝ ํ์ผ์ ์์๋ณต๊ตฌ
git restore [ํ์ผ๋ช
]
# git add๋ก Staging ๋ ํ์ผ์ Unstaged ์ํ๋ก ๋๋๋ฆผ
git restore --staged [ํ์ผ๋ช
]
6) ์ถ์ ๋์ง ์์ ์ํ(untracked)์ ํ์ผ์ ์ญ์ ํฉ๋๋ค. (*์ญ์ ๊ฐ ๋๋ฉด ๋ณต๊ตฌํ ์ ์๋ค.)
# ๋๋ ํ ๋ฆฌ๋ฅผ ์ ์ธํ ํ์ผ๋ง ์ญ์
git clean -f
# ๋๋ ํ ๋ฆฌํฌํจ ์ญ์
git clean -f -d
# .gitignore ์ ์ค์ ๋ ํ์ผ๋ ์ญ์
git clean -f -d -x
# ๊ฐ์ ์คํ
git clean -n
7) ๋ณ๊ฒฝ๋ ๋ด์ฉ์ ์ ์ฅ.
# ๋ฉ์์ง์ ํจ๊ป ์ปค๋ฐ
git commit -m 'First Commit'
# ์ ๊ท ํ์ผ์ ์ ์ธํ ๋ณ๊ฒฝ์ฌํญ์ Staging ํ ์ปค๋ฐ
git commit -a
# ์ด์ ์ปค๋ฐ ๋ณ๊ฒฝ
git commit --amen
8) commit ๋ชฉ๋ก์ ๋ณผ ์ ์๋ค. git log --help ๋ช ๋ น์ด๋ก ์์ ์๊ฒ ๋ง๋ ์กฐํฉ์ ํ์ฉํ๋ฉด ๋๋ค.
# branch ๊ทธ๋ํ๋ฅผ ์ถ๊ฐํ์ฌ ๋ณด๊ธฐ
git log --graph
# ๋ชจ๋ branch ๋ณด๊ธฐ
git log --all
# commit ๋ฉ์์ง ์ ๋ชฉ๋ง ํ์ค๋ก ๋ณด๊ธฐ
git log --oneline
9) commit์ ์์ธ ์ ๋ณด๋ฅผ ํ์ธ.
# ํ์ฌ branch์ ๊ฐ์ฅ ์ต๊ทผ commit ์ ๋ณด๋ฅผ ํ์ธ
git show
# ํน์ commit ์ ๋ณด๋ฅผ ํ์ธ
git show [commit ํด์๊ฐ]
# ํน์ branch์ ๊ฐ์ฅ ์ต๊ทผ commit ์ ๋ณด๋ฅผ ํ์ธ
git show [branch ๋ช
]
10) commit / push ์ทจ์ํ ์ ์๋ค.
# commit์ ์ทจ์ํ๊ณ ํด๋น ํ์ผ๋ค์ ์คํ
์ด์ง ์์ญ์ ๋ณด์กด
git reset --soft HEAD^
# commit์ ์ทจ์ํ๊ณ ํด๋น ํ์ผ๋ค์ Unstaging
git reset --mixed HEAD^
git reset HEAD^
# commit์ ์ทจ์ํ๊ณ ํด๋น ํ์ผ๋ค์ ๋ณ๊ฒฝ์ ์ญ์
git reset --hard HEAD^
git reset HEAD^
git push -f origin ๋ธ๋์น๋ช
git pull
11 ) ์๊ฒฉ ์ ์ฅ์(remote repository)๋ฅผ ๊ด๋ฆฌํ๋ ๋ช ๋ น์ด
# ์ค์ ๋ ์๊ฒฉ ์ ์ฅ์ ๋ณด๊ธฐ
git remote -v
# test ๋ผ๋ ์ด๋ฆ์ผ๋ก ์๊ฒฉ ์ ์ฅ์ ์ถ๊ฐํ๊ธฐ
git remote add test https://github.com/test/test
12 ) ์๊ฒฉ ์ ์ฅ์(remote repository)์ ์ฝ๋ ๋ณ๊ฒฝ๋ถ์ ์ ๋ก๋
# ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ
git push [์ ์ฅ์๋ช
] [branch]
# ์ต์ด 1ํ ์ ์ฅ์, branch ์ง์ . ์ด ํ, ์๋ต ๊ฐ๋ฅ
git push -u [์ ์ฅ์๋ช
] [branch]
# ๋ก์ปฌ์์ ์์ฑํ branch๋ฅผ push
git push --set-upstream [์ ์ฅ์๋ช
] [branch]
13 ) branch์ ๊ด๋ จํ ๋ช ๋ น์ด*
# ๋ก์ปฌ branch ๋ชฉ๋ก ํ์ธ
git branch
# ์๊ฒฉ ์ ์ฅ์๋ฅผ ํฌํจํ ๋ชจ๋ branch ๋ชฉ๋ก ํ์ธ
git branch -a
# test ๋ผ๋ branch ์์ฑํ๊ธฐ
git branch test
# test ๋ก์ปฌ branch๋ฅผ origin์ด๋ผ๋ ์๊ฒฉ ์ ์ฅ์์ test branch์ ์ฐ๊ฒฐ
git branch --set-upstream-to=origin/test test
# test branch ์ญ์
git branch -d test
# test branch ๊ฐ์ ์ญ์
git branch -D test
14) branch๋ฅผ ๋ณ๊ฒฝํ๋ ๋ช ๋ น์ด์ ๋๋ค. checkout ์์ ๋ณต์ํ๋ ๊ธฐ๋ฅ์ ์ ๊ฑฐ.
# test branch๋ก ๋ณ๊ฒฝํ๊ธฐ
git switch test
# test2 ๋ผ๋ branch๋ฅผ ์๋ก ์์ฑํ๊ณ test2 branch๋ก ๋ณ๊ฒฝํ๊ธฐ
git switch -c test2
15 ) branch๋ฅผ ๋ณ๊ฒฝํ๊ณ ์ํน ํธ๋ฆฌ(Working tree)์์ ๋ณ๊ฒฝ์ ์ ๋ณต์ํ๋ ๋ช
๋ น์ด
switch, restore ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ถ์ฒ
# test branch๋ก ๋ณ๊ฒฝํ๊ธฐ
git checkout test
# test2 ๋ผ๋ branch๋ฅผ ์๋ก ์์ฑํ๊ณ test2 branch๋ก ๋ณ๊ฒฝํ๊ธฐ
git checkout -b test2
# Unstaged ์ํ์ ํ์ผ์ ์๋๋๋ก ๋๋๋ฆผ
git checkout -- [ํ์ผ๋ช
]
# Unstaged ์ํ์ ํ์ฌ ๊ฒฝ๋ก์ ๋ชจ๋ ํ์ผ์ ์๋๋๋ก ๋๋๋ฆผ
git checkout -- .
16 ) ์๊ฒฉ ์ ์ฅ์(remote repository)์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์จ๋ค. pull๋ก ๋ณํฉํ๊ธฐ ์ ์ ์ด๋ค ๋ณ๊ฒฝ์ ์ด ์๋ ์ดํด๋ณผ ๋ ์ฌ์ฉํ๊ธฐ ์ข๋ค.
# origin ์ด๋ผ๋ ์๊ฒฉ ์ ์ฅ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ด
git fetch origin
# ๋ชจ๋ ์๊ฒฉ ์ ์ฅ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ด
git fetch --all
# ์๊ฒฉ ์ ์ฅ์์์ ์ญ์ ๋ branch๋ฅผ ๋ก์ปฌ์์๋ ์ญ์
git fetch --prune
17 ) ์๊ฒฉ ์ ์ฅ์(remote repository)์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์จ ํ ๋ก์ปฌ branch์ ๋ณํฉ
# git fetch --all && git pull ๊ณผ ๊ฐ์ต๋๋ค
git pull --all
18) ํ์ฌ ์์ ์ค์ธ ๋ณ๊ฒฝ์ ์ ์์ ์ ์ฅํ๊ฑฐ๋ ๋ถ๋ฌ์ฌ ์ ์๋ค. ํ์ฌ์ ๋ค๋ฅธ branch๋ก ๊ฐ์ ์์ ์ ํ๊ธฐ ์ ์ ์ฌ์ฉํ๋ฉด ์ ์ฉ
# ํ์ฌ ๋ณ๊ฒฝ์ testStash ๋ผ๋ ์ด๋ฆ์ผ๋ก ์ ์ฅํ๊ธฐ
git stash save testStash
# stash ๋ชฉ๋ก(stack) ํ์ธํ๊ธฐ
git stash list
# testStash ๋ผ๋ stash๋ฅผ ๋ถ๋ฌ์ ์ ์ฉํ๊ธฐ
git stash apply testStash
# testStash ๋ผ๋ stash๋ฅผ ๋ถ๋ฌ์ ์ ์ฉํ๋๋ฐ, Staged ์ํ๊น์ง ์ ์ฉํ๊ธฐ
git stash apply testStash --index
# ๊ฐ์ฅ ์ต๊ทผ์ stash๋ฅผ ๊ฐ์ ธ์ ์ ์ฉํ๊ณ ์คํ์์ ์ญ์ ํ๊ธฐ
git stash pop
# ๊ฐ์ฅ ์ต๊ทผ์ stash ์ ๊ฑฐํ๊ธฐ
git stash drop
# testStash๋ผ๋ stash๋ฅผ ์ ๊ฑฐํ๊ธฐ
git stash drop testStash
๊ด๋ จ URL : https://urbanbase.github.io/dev/2021/01/15/GitCommand.html
์ต์ํด์ง๋ฉด ์ข์ ๊น(git) ๋ช ๋ น์ด ๋ชจ์์ง
์๋ ํ์ธ์. APIํ ๊น์ธํ์ ๋๋ค. ์ด๋ฐ๋ฒ ์ด์ค์์๋ Server Side ์ค๊ณ, API ๊ฐ๋ฐ์ ๋ด๋นํ๊ณ ์์ต๋๋ค. git์ ํญ์ ์ฌ์ฉํ๊ณ ์์ง๋ง ์ค์ค๋ก ๊ธฐ๋ณธ์ ์ธ ์ดํด๊ฐ ๋ถ์กฑํ ๊ฒ ๊ฐ์, ๊ณต๋ถํ๋ ๋ง์์ผ๋ก ์ฃผ์
urbanbase.github.io
์ฐ์ฐํ ์๊ฐ ๊ฒธ ๋ฒํธ์ฌ์ธ ์ ์ง์ฐ ๋๊ณผ ์ ๋ฐฐ๋ฌ์ ๋ฏผ์กฑ ๋ํ์ด์ ๊น๋ฒ์ค ๋ํ๋์ ์ธํฐ๋ทฐ๋ฅผ ๋ณด์๋ค.
(๊ด๋ จ URL : https://maily.so/allculture/posts/948e8eac)
๊น๋ฒ์ค์ ๋ณํ๋ฅผ ์ด๋๋ ๋ง์_๋ฐ์ฐฉ๋ ๋ง์_์ ์ง์ฐ
์ธ์์ ๋ชจ๋ ๋ฌธํ
maily.so
(๋ณธ๋ฌธ๋ด์ฉ ์ค ์ผ๋ถ) ‘์ต์ ์ ๋คํ์ง ๋ง’, ‘๋๋ฌด ์ด์ฌํ ์ด์ง ๋ง’๋ผ๋ ๋ง์ด ์ ํ์ฒ๋ผ ๋ฒ์ง๊ธฐ๋ ํ์ง๋ง, ์ ์ ๊ทธ๋ฐ ๋ง์ ํ๋ ์ง์์ ์๋ ์ฌ๋๋ค์ ์ต์ ์ ๋คํด ์ด์์จ ์ฌ๋๋ค์ผ ๊ฒ์ด๋ค. ( ... ์ค๋ต)
๊ทธ๋ ๊ทธ์ ๋ง์์ ๋ฐ๋ผ ์ฌ๋ ์ฌ๋์ด์๋ค. ๋๋ ๊ทธ๋ฐ ์ฌ๋์ด ์กด์ฌํ๋ค๋ ์ฌ์ค์ด ๊ณ ๋ง์ ๋ค. ์๋ํ๋ฉด, ์ฐ๋ฆฌ๋ค ์ถ์ด๋ ๋๊ฐ ๋ง์์ ํฌ๊ธฐํ๋ ๊ณผ์ ์ด๊ธฐ๋ ํ๊ธฐ ๋๋ฌธ์ด๋ค. ํ์ค๊ณผ ์๋ฌด ๋๋ฌธ์, ์๋ง์ ์ฌ๋๋ค์ด ๋ง์์ ํฌ๊ธฐํ๋ฉฐ ์ด์๊ฐ๋ค. ๋๋ก๋ ์์งํ์ฌ ์ค์ค๋ก์ ๋ง์์ ์ฃฝ์ด๊ณ ํ์ธ๋ค์ ๋ง์์ ๋ฐ๋ผ ์ด๊ธฐ๋ ํ๋ค. ‘ํ์์ ์๋ง’์ ์๋งํ๋ฉฐ ๊ทธ์ ๋๊ณผ ์๋น๋ฅผ ๋ฐ๋ผ ์ด์๊ฐ๊ธฐ๋ ํ๋ค. ๊ทธ๋ฌ๋ ๊ทธ๋ ๋ฌด์๋ณด๋ค ๋ง์์ ์์ง ์๋ ์ฌ๋ ๊ฐ์ ๋ณด์๋ค.
“์ ๊ฐ ์ ์ผ ์ซ์ดํ๋ ๊ฑด ๋ ์ด์ ์ ๊ฐ ํ ์ ์๋ ๊ฒ ์๋ ํ๊ฒฝ์ด์์. ์ ๊ฐ ๋ฐ๊ฟ ์ ์๋ ๊ฒ ์๋ฌด๊ฒ๋ ์์ ๋, ์ ๋ ๊ทธ๊ณณ์์ ๋ฒ์ด๋๊ณ ์ถ์ด ์ ธ์. ์ฌ์ค, ๋ด ์ถ์ ๋ด๊ฐ ์ฃผ๋ํ๊ณ ์ถ๊ณ , ๊ทธ๋์ ๋ํ ์ํ๋ถํฐ ๋ณธ๊ฐ๋ก๋ถํฐ ๋ ๋ฆฝ์ ์ธ ๊ธฐ์์ฌ ์ํ์ ํํ ๊ฒ๋ ์์์ด์.”
๊ทธ์๊ฒ ‘์ถ์ ์ฃผ๋’ํ๋ ์ผ๊ณผ, ‘์๊ธฐ ์ถ์ ์ฌ๋ํ๋ ๊ฒ’๊ณผ, ‘์๊ธฐ ์๊ฐ์ ์์คํ ํ๋ ๊ฒ’์ ๋ชจ๋ ๊ฐ์ ์ผ์ธ๋ฐ, ๋์์ ๊ทธ๊ฒ์ ‘๋ณํ๋ฅผ ์ด๋๋ ๋ง์’์ด๋ผ๋ ๊ฒ ๋งค์ฐ ํน๋ณํ๊ฒ ๋๊ปด์ก๋ค. ์๊ฐํด ๋ณด๋ฉด, ๋ ๋ํ ๋ณํ๋ฅผ ์ฃผ๋ํ ์ ์์ ๋ ์ค์ค๋ก ๋ ๊ฐ์น ์๊ณ ์ด์ ์๋ ๊ฒ์ฒ๋ผ ๋๊ปด์ง๊ณ , ๋ ์์คํ ์๊ฐ์ผ๋ก ๊ธฐ์ต๋๋ ๊ฒ ๊ฐ๊ธฐ๋ ํ๋ค. ๊ฐ๋ น, ์์ด์ ๊ทธ๋ฆผ์ฑ ์ ํจ๊ป ๋ง๋ค๊ธฐ๋ก ๊ฒฐ์ฌํ ์๊ฐ, ๊ทธ๊ฒ์ ๊ฐ์ด ๋ณด๋ด๋ ์๊ฐ์ ๋ณํ์ด์ ์ฐฝ์กฐ์ด๊ณ , ์ค๋ ์ด๋ฉฐ, ์๋ก์ด ๊ธฐ์ต์ ํ์์ด๋ค.

'๋ง์์ ์์ง ์๊ณ , ๊ทธ๋ฐ ๋ง์์ ๋ฐ๋ผ ์ฌ๋ ์ฌ๋' ๋๋ฌธ์ ์์ ์ ์ถ์ ์ฃผ๋ํ๊ณ ์ถ์ ์ฌ๋ํ ์ ์๋ ๊ฒ ์๋๊น.
'ํ์ค์ ์ผ๋ก ์ด๊ฑด ๋ถ๊ฐ๋ฅํด'๋ผ๋ ๋ง๋ค๋ก ๋ด ๋ง์์ ๊ณ ์ด ์ ์ด ๋ฒ๋ฆฐ ๋ ๋ค์ด ์ค์ณ ์ง๋๊ฐ๋ฉด์ '๋ด๊ฐ ๋์ณ๋ฒ๋ฆฐ ๊ฒ๋ค์ด ์ผ๋ง๋ ๋ง์ด ์์์๊น?'๋ฅผ ์๊ฐํด ๋ณด๊ฒ ๋๋ค.
ํ ๋ฒ์ ๋ด ๋ง์ ๊ฐ๋ ๋ฐ๋ก ์์ฌ๋ด์, ์ต์ ์ ๋คํด์ ์ด์ฌํ ์ด์๋ด์ผ์ง. ํ ๊ฐ๋ณด์๊ณ !
๋ด์ฉ์ด ์ข์์ ๋ช ๋ฒ์ ๊ณฑ์น์ด ๋ดค๋ค
์๋ฌดํผ ์ธํฐ๋ทฐ ๋ด์ฉ ์ข์ผ๋ ๋ค๋ค ํ๋ฒ ๋ณด์๋ผ!