- Published on
๐ Git(3)-subicura ํํ ๋ฆฌ์ผ ์ ๋ฆฌ
- ๊ธ์ด์ด
๐ ๋ชฉ์ฐจ
- ์์ํ๊ธฐ
- ๊ธฐ๋ณธ ๋ช ๋ น์ด
- ์์ ๋ถ๊ธฐ
- GitHub ๊ณต์
- GitHub Flow
1. ์์ํ๊ธฐ
๐ก ์์ํ๊ธฐ ํํธ ์์ฝ
-
Git์ ํน์ง Git์ ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ ์ด๋ ฅ ๊ด๋ฆฌ ์ ๋๋ค. Git์ ๋ธ๋์นbranch๊ธฐ๋ฅ์ ์ ๊ณตํ์ฌ ๋์์ ์ฌ๋ฌ ์์ ์ ์งํํ๊ณ ํฉ์น๊ณ ์ถฉ๋์ ํด๊ฒฐํ ์ ์์ต๋๋ค. Git์ ๋ถ์ฐ ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ด๊ณ ๋ก์ปฌ์ ์๊ฒฉ ์ ์ฅ์์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณต์ ํ๊ธฐ ๋๋ฌธ์ ์ฌ์ค์ ๊ฐ๋ฐ์ ์๋งํผ ๋ฐฑ์ ์ด ๋์ด ์์ต๋๋ค. Git์ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํฉ๋๋ค.
-
Git์ ๋จ์ Git์ ์๋ฉด ์์๋ก ๋ณต์กํ๊ณ ๊ฐ๋ฐ์๋ง๋ค ์ฌ์ฉํ๋ ๋ช ๋ น์ด๋ ๋ค๋ฅด๊ณ ์ฌ์ฉํ๋ ํ๋ก๊ทธ๋จ๋ ์ ๊ฐ๊ฐ์ ๋๋ค. ์ฝ๊ฒ ์ตํ ์ ์๋ ์ ์์ ์ธ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
-
๊ฐ์ด๋ ์๋ด
-
์ต์ ๋ช ๋ น์ด ์๊ฐ -
git checkout
์ฌ์ฉ๋ฒ๊ณผ ํจ๊ป ์ต๊ทผ ์ถ๊ฐ๋git switch
,git restore
๋ช ๋ น์ด๋ฅผ ์๊ฐํฉ๋๋ค. -
์ค๋น
2. ๊ธฐ๋ณธ ๋ช ๋ น์ด
๐ก ๋์๊ฒ ์์ํ ๋ช ๋ น์ด๋ง ์์ฝํจ
git status # gst
gst ๋ ๋ญ๊ฐ์?
๋ช
๋ น์ด ๋ค์ ์ฃผ์์ผ๋ก ์จ์๋ ๋ถ๋ถ์ alias๋ก oh-my-zsh
์ ์ค์นํ๋ฉด ์ฌ์ฉํ ์ ์๋ ๋ณ์นญ์
๋๋ค.git status
๋์ gst
๋ง ์
๋ ฅํด๋ ๋์ผํ๊ฒ ๋์ํฉ๋๋ค. alias๋ฅผ ์ ๊ทน์ ์ผ๋ก ์จ๋ณด์ธ์!
git reset [<commit>] [--soft | --mixed [-N] | --hard | --merge | --keep]
git reset - ์ด์ ์ํ๋ก (์ด๋ ฅ ์ ๊ฑฐ)
ํน์ ์ปค๋ฐ๊น์ง ์ด๋ ฅ์ ์ด๊ธฐํํฉ๋๋ค. ๋ฐ๋ก ์ , ๋๋ n๋ฒ ์ ๊น์ง ์์ ํ๋ ๋ด์ฉ์ ์ทจ์ํ ์ ์์ต๋๋ค. ์ด์ฌํ ์์ ํ๋๋ฐ, ์ ํ ์๋ฑํ ๊ฑธ ํ๊ฑฐ๋ ์์ ํ ๋ด์ฉ์ด ํ์ ์์ด์ง ๋ ์ฌ์ฉํฉ๋๋ค. โ ๏ธ ์ด๋ ฅ์ด ์ง์์ง๊ธฐ ๋๋ฌธ์ ์ฃผ์ํด์ผ ํฉ๋๋ค.
git reset
์ ๋ค์ํ ์ต์
์ด ์กด์ฌํ๋๋ฐ ์ฌ๊ธฐ์ --hard
์ต์
์ ์ฌ์ฉํฉ๋๋ค.
git revert <commit>โฆ
git revert - ์ด์ ์ํ๋ก (์ด๋ ฅ ์ ์ง)
ํน์ ์ปค๋ฐ์ ์ทจ์ํ๋ ์๋ก์ด ์ปค๋ฐ์ ๋ง๋ญ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ํน์ ๋ฒ์ ์ ๋ฐฐํฌํ๋๋ฐ ๋ฌธ์ ๊ฐ ์๊ธฐ๋ฉด ๋ฌธ์ ๊ฐ ์๊ธด ์ปค๋ฐ์ revert
ํฉ๋๋ค. (๋น ๋ฅธ ์กฐ์น/๋กค๋ฐฑ) ๋ค์ ์๋ณตํ ์ํ๋ก ์์
์ ์ด์ด์ ํ๊ณ ํด๋น ๋ฌธ์ ๋ฅผ ์์ ํ๋ฉด ๋ค์ ์ปค๋ฐํ๋ ๋ฐฉ์์ ์ฌ์ฉํฉ๋๋ค.
( Visual Studio Code ์ค์ต์ ์๋ ๋ฒ์ ์ ์ด์ฉํด์ ๋๋ฆผ์ฝ๋ฉ ์จ๋ฆฌ ๊ฐ์๋ฅผ ์ข ๋ ์ฐธ๊ณ ํ๋ ค๊ณ ํ๋ค..)
3. ์์ ๋ถ๊ธฐ
๐ก โก๏ธ ๋ชฉํ ๋ธ๋์น ๊ธฐ๋ฅ์ ์ด์ฉํ์ฌ ๋์์ ์ฌ๋ฌ ์์ ์ ์งํํ๊ณ ํฉ์น๊ณ ์ถฉ๋์ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ์์๋ด ๋๋ค.
git switch (-c|-C) <new-branch>
git switch -c - ๋ธ๋์น ์์ฑ
์ ๋ธ๋์น๋ฅผ ๋ง๋ค ๋, ํ์ฌ ๋ธ๋์น์ ์ํ๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ง๋ค๊ธฐ ๋๋ฌธ์ ํ์ฌ ๋ธ๋์น๊ฐ ๋ฌด์์ธ์ง ๊ผญ ํ์ธํด์ผ ํฉ๋๋ค.
# git checkout -b add-color # ์์ Git ๋ฒ์ ๋ช
๋ น์ด
git switch -c add-color # gsw -c add-color
โ
git switch์ -c
์ต์
์ ๋ธ๋์น ์์ฑ๊ณผ ๋ธ๋์น ์ด๋์ ํ๋ฒ์ ์ํํฉ๋๋ค. ๋ค์ ๋ช
๋ น์ด์ ๋์ผํฉ๋๋ค.
git branch add-color
git swtich add-color
git switch - ๋ธ๋์น ๋ณ๊ฒฝ / ๋ธ๋์น ์ถ๊ฐ
add-color
๋ธ๋์น์์ ์งํํ ์์
์ด ๊ธฐ์กด main
๋ธ๋์น์ ๋
๋ฆฝ์ ์ธ ๊ฒ์ ํ์ธํฉ๋๋ค.
# git checkout main # ์์ Git ๋ฒ์ ๋ช
๋ น์ด
git switch main # gsw main, gsw ํ์นธ ๋๊ณ <tab>์ ๋๋ฌ๋ณด์ธ์
# git checkout -b update-red # ์์ Git ๋ฒ์ ๋ช
๋ น์ด
git switch -c update-red # gsw -c update-red
conflict - ์ถฉ๋ ํด๊ฒฐ
์ด ๋ถ๋ถ์ 4. update-red
๋ธ๋์น๋ฅผ main
์ผ๋ก ๋จธ์ง ํ๋ ๋ถ๋ถ์ด ์ ์ดํด๊ฐ ์๋๋ค.
red ํ์ผ ๋ด์ฉ
<<<<<<< HEAD
๋ป๊ฑด์
=======
๋ถ์์
>>>>>>> update-red
์ถฉ๋์ด ๋ฐ์ํ๋ฉด ์์ชฝ ๋ธ๋์น์์ ๋์์ ๋ณ๊ฒฝ๋ ์ฌํญ์ ํ์ํด ์ค๋๋ค.
<<<<<<<
, =======
, >>>>>>>
์ด ๋ด์ฉ์ด ์ถฉ๋์ด ๋ฐ์ํ ์ง์ ์ ์๋ฏธํฉ๋๋ค.
์์ ๋ด์ฉ์ main
๋ธ๋์น์์ ์์
ํ ๋ด์ฉ์ด๊ณ ์๋ ๋ด์ฉ์ update-red
๋ธ๋์น์์ ์์
ํ ๋ด์ฉ์ด๋ค์. ๋์ค์ ์ด๋ค ๋ด์ฉ์ด ๋ง๋์ง ๊ฐ๋ฐ์๊ฐ ์ค์ค๋ก ํ๋จํ๊ณ ์ ํํด์ผ ํฉ๋๋ค.
์ฌ๊ธฐ์ , ๋ถ์์
๋ง ๋จ๊ธฐ๊ณ ๋ค๋ฅธ ์ค์ ์ญ์ ํฉ๋๋ค. <<<<<<<
, ๋ป๊ฑด์
, =======
, >>>>>>>
๋ฅผ ๋ชจ๋ ์ ๊ฑฐํฉ๋๋ค.
์ถฉ๋์ ํด๊ฒฐํ๋ค๋ฉด ๊ธฐ์กด๊ณผ ๋์ผํ ๋ฐฉ์์ผ๋ก ์ปค๋ฐ์ ์งํํฉ๋๋ค. ์ฐจ์ด์ ์ git commit
์์ -m
๋ฉ์์ง๋ฅผ ์
๋ ฅํ์ง ์๋๋ค๋ ์ ์
๋๋ค. ์ถฉ๋์ ์์ ํ ๋ด์ฉ์ ์๋์ผ๋ก ๋ฉ์์ง๋ก ๋ง๋ค๊ธฐ ๋๋ฌธ์ ๋ฐ๋ก ์
๋ ฅํ์ง ์์๋ ๋ฉ๋๋ค.
4. GitHub ๊ณต์
๐ก โก๏ธ ๋ชฉํ GitHub์ ์ด์ฉํ์ฌ ์๊ฒฉ ์ ์ฅ์์ ์ฐ๋ํ๋ ๋ฐฉ๋ฒ์ ์์๋ด ๋๋ค.
๋จผ์ GItHub์์ ๋ ํฌ์งํฐ๋ฆฌ๋ฅผ ์์ฑํ ํ ํฐ๋ฏธ๋์์
git push - ์๊ฒฉ ์ ์ฅ์ ์ ์ฅ
์์์ ์ค์ตํ๋ ๋ก์ปฌ ์ ์ฅ์๋ฅผ GitHub์ ํธ์ํฉ๋๋ค. ๋ก์ปฌ ์ ์ฅ์์ ์ปค๋ฐ ๋ชฉ๋ก์ด ๊ทธ๋๋ก ๋ณต์ ๋ ์์ ์ ๋๋ค.
git remote add <name> <url>
git push [-u | --set-upstream] [<repository> [<refspec>โฆ]]
์์
main
๋ธ๋์น์์๊ฒฉ ์ ์ฅ์
(GitHub)๋ฅผorigin
(๊ธฐ๋ณธ)์ผ๋ก ์ค์ ํฉ๋๋ค.- ๋ฉ์ธ ๋ธ๋์น๋ฅผ
main
์ผ๋ก ์ค์ ํฉ๋๋ค. (์ด๋ฏธmain
์ด๋ฏ๋ก ์๋ต ๊ฐ๋ฅ) - ์ค์ ํ
์๊ฒฉ ์ ์ฅ์
์๋ก์ปฌ ์ ์ฅ์
์ ๋ชจ๋ ์ปค๋ฐ์ํธ์
ํฉ๋๋ค.u
์ต์ ์ ์ด์ฉํ์ฌ ์ดํ์ ํธ์ํ ๋ ๋ณ๋ค๋ฅธ ์๊ฒฉ ์ ์ฅ์ ์ด๋ฆ์ ์ง์ ํ์ง ์๊ณgit push
๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
git remote add origin https://github.com/subicura-git/sample.git
git branch -M main
git push -u origin main # gp -u origin main
GitHub ์ ์ฅ์์ ์ ๊ทผ๊ถํ์ด ์ ํ๋์ด ์์ด ์์ด๋, ํจ์ค์๋๋ฅผ ์ ๋ ฅํ๋ผ๊ณ ํฉ๋๋ค. ์์ด๋, ํจ์ค์๋๋ฅผ ์ ๋ ฅํ๋ฉด ์ ์์ ์ผ๋ก ํธ์๊ฐ ์๋ฃ๋ฉ๋๋ค. ์ฒ์์๋ง ํ๋ฉด ๊ทธ๋ค์๋ถํฐ๋ ์ ๋ ฅ์ํด๋ ๋๋ ๊ฒ ๊ฐ์
โ ์๊ฒฉ ์ ์ฅ์์ ์ฃผ์๋ฅผ ์ค์ ํ ๋, https์ ssh๋ฅผ ์ ํํ ์ ์์ต๋๋ค. https๋ ์์ด๋/ํจ์ค์๋ ๋ฐฉ์์ ์ฌ์ฉํ๊ณ ssh๋ ๊ฐ์ธํค์ ๊ณต๊ฐํค๋ฅผ ์ด์ฉํฉ๋๋ค. ์ด๋ฒ ์ค์ต์์ https ๋ฐฉ์์ ์ด์ฉํฉ๋๋ค.
5. GitHub Flow
ํ๋ก์ฐ ๋ณด๋ฉด์ ์ค์ตํด๋ณด๊ธฐ..