GitHub
์ด๊ธฐํ (init)
์๊ฒฉ ์ ์ฅ์๋ฅผ ๋ง๋ค๊ณ ๋ก์ปฌ ์ ์ฅ์๋ฅผ ๋ง๋ค ํด๋๋ฅผ ๋ง๋ ๋ค. ๊ทธ ๊ฒฝ๋ก์ ๊น ๋ฐฐ์๋ฅผ ์ด์ด git init ๋ช ๋ น์ด๋ก ๋ก์ปฌ ์ ์ฅ์๋ฅผ ๋ง๋ ๋ค.
git init
์ฌ๊ธฐ๊น์ง๋ ํ์ฌ ๋ก์ปฌ ์ ์ฅ์๋ ์๊ฒฉ ์ ์ฅ์์ ์กด์ฌ๋ฅผ ๋ชจ๋ฅธ๋ค. ๋์ด ์ํธ์์ฉํ๊ธฐ ์ํด์๋ ์๊ฒฉ ์ ์ฅ์๋ฅผ ๋ก์ปฌ ์ ์ฅ์์ ์ถ๊ฐํด์ผ ํ๋ค. ์๊ฒฉ ์ ์ฅ์๋ฅผ origin์ด๋ผ๋ ์ด๋ฆ์ผ๋ก ๋ก์ปฌ ์ ์ฅ์์ ์ถ๊ฐํ๊ฒ ๋ค.
git remote add origin <์๊ฒฉ ์ ์ฅ์ ๊ฒฝ๋ก>
์ด๋ ๊ฒ ํ๋ฉด ์ถํ origin์ด๋ผ๋ ์ด๋ฆ์ผ๋ก ์๊ฒฉ ์ ์ฅ์์ ์ํธ์์ฉ ํ ์ ์๋ค.
์ถ๊ฐ๋ ์๊ฒฉ ์ ์ฅ์ ๋ชฉ๋ก์ git remote ๋ช ๋ น์ผ๋ก ํ์ธํ ์ ์๋ค.
git remote -v // ์๊ฒฉ ์ ์ฅ์์ ์ด๋ฆ๊ณผ ๊ฒฝ๋ก๋ฅผ ํจ๊ป ํ์ธ
git remote rename <๊ธฐ์กด ์ด๋ฆ> <๋ฐ๊ฟ ์ด๋ฆ> // ์๊ฒฉ ์ ์ฅ์ ์ด๋ฆ์ ๋ฐ๊พธ๋ ๋ช
๋ น์ด
git remote remove <์๊ฒฉ ์ ์ฅ์ ์ด๋ฆ> // ์๊ฒฉ ์ ์ฅ์ ์ญ์
ํด๋ก (clone) : ์๊ฒฉ ์ ์ฅ์๋ฅผ ๋ณต์ ํ๊ธฐ
ํด๋ก ํ๋ฉด ๋ธ๋์น๊ฐ ์ธ ๊ฐ๊ฐ ๋ณด์ธ๋ค.
main - ๊ธฐ๋ณธ ๋ธ๋์น
origin/main - ์๊ฒฉ ์ ์ฅ์ origin์ ๊ธฐ๋ณธ ๋ธ๋์น
origin/HEAD - ์๊ฒฉ ์ ์ฅ์ origin์ HEAD
// ์๊ฒฉ ์ ์ฅ์์ ๋ค์ด๊ฐ์ code ๋ฒํผ์ ํด๋ฆญํ ๋ค์ ssh๋ฅผ ๋ณต์ฌํ๋ค.
// ํด๋ก ๋ฐ์ ์์น์์ ๊น ๋ฐฐ์๋ฅผ ์ด๊ณ
git clone <๋ณต์ฌํ ๊ฒฝ๋ก>
SSH : ์์ ํ๊ฒ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋ ํต์ ๋ฐฉ๋ฒ
key๋ฅผ ๋ ๊ฐ ์์ฑํ ํ (public, private) ํต์ ํ๋ ค๋ ๋์(gitHub)์๊ฒ ๊ณต๊ฐ ํค๋ฅผ ๊ฑด๋ค์ค๋ค.
ํธ์ (push) : ์๊ฒฉ ์ ์ฅ์์ ๋ฐ์ด๋ฃ๊ธฐ
push๋ ์๊ฒฉ ์ ์ฅ์์ ๋ก์ปฌ ์ ์ฅ์์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ฐ์ด๋ฃ๋ ๊ฒ์ด๋ค.
์๊ฒฉ ์ ์ฅ์์์ ํด๋ก ํด์จ ๋ค ๋ก์ปฌ ์ ์ฅ์์ ํ์ผ์ ์์ ํ๊ณ ์ปค๋ฐํ๋ค. ์ด ์ํ์์ ์๊ฒฉ ์ ์ฅ์๋ฅผ ๋ก์ปฌ ์ ์ฅ์์ ๊ฐ๊ฒ ๋ง๋ค ๋ push ํด์ผ ํ๋ค.
์ฒ์ ์๊ฒฉ ์ ์ฅ์๋ก ํธ์ํ๋ ๊ฒฝ์ฐ๋ ๊ทธ๋๋ก ๋ถ์ฌ๋ฃ๋๋ค.
git remote add origin <๊ฒฝ๋ก> // ์๊ฒฉ ์ ์ฅ์๋ฅผ origin์ด๋ผ๋ ์ด๋ฆ์ผ๋ก ์ถ๊ฐํ๋ค.
git branch -m main // ํ์ฌ ๋ธ๋์น ์ด๋ฆ์ mian์ผ๋ก ๋ฐ๊พผ๋ค.
git push -u origin main // ์๊ฒฉ ์ ์ฅ์ origin์ผ๋ก ๋ก์ปฌ ์ ์ฅ์ main ๋ธ๋์น์ ๋ณ๊ฒฝ์ฌํญ์ ํธ์
-u ์ต์ ์ ์ฒ์ ํธ์ํ ๋ ๋ฑ ํ ๋ฒ๋ง ์ฌ์ฉํ๋ค. ์ถํ์๋ git push(๋๋ git pull) ๋ช ๋ น๋ง์ผ๋ก๋ origin์ main ๋ธ๋์น๋ก push(ํน์ pull) ํ ์ ์๋ค.
ํจ์น(fetch) : ์๊ฒฉ ์ ์ฅ์๋ฅผ ์ผ๋จ ๊ฐ์ ธ๋ง ์ค๊ธฐ
ํ์ ํ์ฌ ๊ฐ๋ฐํ๊ณ ์๋ ์ํฉ์ ๊ฐ์ ํด ๋ณด์. ๋ค๋ฅธ ๊ฐ๋ฐ์๊ฐ ์ธ์ ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ถ๊ฐํ ์ ์๊ธฐ ๋๋ฌธ์ ํ์ผ์ ์์๊ฐ๊ฐ ๋ณํ ์ ์๋ค. ๋ค๋ฅธ ๊ฐ๋ฐ์๊ฐ ํธ์ํ ๋ด์ฉ์ ์์ ์ ๋ก์ปฌ๋ก ๊ฐ์ ธ์ค๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ ๊ฒ์ด fetch์ด๋ค.
์ค์ํ ๊ฑด fetch ํด๋ ์๊ฒฉ ์ ์ฅ์์ ๋ด์ฉ์ด ๋ก์ปฌ ์ ์ฅ์์ ๋ณํฉ๋๋ ๊ฑด ์๋๋ค. ์๊ฒฉ ์ ์ฅ์์ ์ปค๋ฐ์ด ํ๋ ์ถ๊ฐ๋ ๊ฒฝ์ฐ git fetchํ๊ณ git status๋ฅผ ์ ๋ ฅํด ๋ณด๋ฉด 'Your branch is behind 'origin/main' by 1 commit'์ด๋ผ๋ ๋ฉ์์ง๋ฅผ ๋ณผ ์ ์๋ค. ํ์ฌ ๋ธ๋์น๋ ์๊ฒฉ ์ ์ฅ์ origin/main ๋ธ๋์น์ ๋นํด ์ปค๋ฐ ํ๋๊ฐ ๋ค์ณ์ง๋ค๋ ์๋ฏธ์ด๋ค. fetch๋ ์๊ฒฉ ์ ์ฅ์์ ๋ณ๊ฒฝ ์ฌํญ์ ๊ฐ์ ธ์ค๋ ๊ฒ์ผ ๋ฟ main ๋ธ๋์น๋ ๋ณํจ ์๊ธฐ ๋๋ฌธ์ด๋ค.
main ๋ธ๋์น๋ฅผ origin/main ๋ธ๋์น์ ๋ณํฉํ๊ธฐ ์ํด์ main ๋ธ๋์น์์ git merge origin/main ํ๋ค.
ํ (pull) : ์๊ฒฉ ์ ์ฅ์๋ฅผ ๊ฐ์ ธ์์ ํฉ์น๊ธฐ
fetch๊ฐ ์ผ๋จ ๊ฐ์ ธ๋ง ์ค๋ ๊ฒ์ด๋ผ๋ฉด pull์ ๊ฐ์ ธ์์ ํฉ์น๋ ๋ฐฉ๋ฒ์ด๋ค. ์ฆ fetch์ ๋ณํฉ์ ๋์์ ํ๋ ๋ฐฉ๋ฒ์ด๋ค.
git pull <์๊ฒฉ๋ณ์นญ> <๋ธ๋์น> // ์๊ฒฉ ์ ์ฅ์์์ ๋ธ๋์น ๋น๊ฒจ์ค๊ธฐ
git pull --rebase <์๊ฒฉ๋ณ์นญ> <๋ธ๋์น> // ์๊ฒฉ ์ ์ฅ์์ ๋ธ๋์น๋ก ๋ก์ปฌ ๋ธ๋์น ๋ฎ์ด์ฐ๊ธฐ
Pull Request : GitHub๋ก ํ์
ํ๊ธฐ
ํ ์๊ฒฉ ์ ์ฅ์์์ ์ฌ๋ฌ ๊ฐ๋ฐ์๊ฐ ์ฝ๋๋ฅผ ๊ธฐ์ฌํ ์ ์๋ค. ๊ทธ๋ ๋ค๋ฉด ์์ ์ด ์์ ํ์ง ์์ ์๊ฒฉ ์ ์ฅ์์๋ ํธ์ํ ์ ์์๊น? ์ผ๋ฐ์ ์ผ๋ก ๊ทธ๋ ์ง ์๋ค.
์๊ฒฉ ์ ์ฅ์ ์์ ์๊ฐ ๋น์ ์ collaborator๋ก ์ถ๊ฐํ ๊ฒฝ์ฐ์๋ ์์ ์ด ์์ ํ์ง ์์ ๊ณ์ ์ ์๊ฒฉ ์ ์ฅ์์ ํธ์ํ ์ ์๋ค. ํ์ง๋ง ์ด๋ฌํ ํธ์ ๊ถํ์ด ์๋ ์๊ฒฉ ์ ์ฅ์๋ pull request๋ฅผ ํตํด ๊ฐ๋ฅํ๋ค.
git <๋ช
๋ น์ด> --help : ๋ฉ๋ด์ผ ํ์ด์ง ๋ณด๊ธฐ
์ฐธ๊ณ ๋ฌธํ
๊ฐ๋ฏผ์ฒ . ใ๋ชจ๋์ ๊น & ๊นํ๋ธใ. ๊ธธ๋ฒ, 2022.
Last updated