ํ์ฌ์์ ํ๋ก์ ํธ ํ์
์ ์งํํ๋ฉฐ, ์ฝ๋ ์ถฉ๋์ด ์์ฃผ ๋ฐ์ํ๊ณ ์ด์ ๋ฒ์ ์ผ๋ก ๋๋์๊ฐ์ผ ํ๋ ์ํฉ์ ์ฌ๋ฌ ๋ฒ ๊ฒช์์ต๋๋ค. git add, git commit, git push ๊ฐ์ ๊ธฐ๋ณธ ๋ช
๋ น์ด๋ ์ต์ํ์ง๋ง, ์ ๋๋ก ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ํ๊ณ ์๋์ง์ ๋ํ ํ์ ์ ๋ถ์กฑํ์ต๋๋ค. Git๊ณผ GitHub๋ฅผ ์ข ๋ ์ฒด๊ณ์ ์ผ๋ก ์ดํดํ๊ณ ํ์ฉํ๊ณ ์ถ๋ ์ฐจ์ โ๊ทธ๋ฆผ๊ณผ ์ค์ต์ผ๋ก ๋ฐฐ์ฐ๋ ๊น & ๊นํ๋ธ ์
๋ฌธโ์ ์ฝ๊ฒ ๋์์ต๋๋ค. ์ด ์ฑ
์ ์ ์ ๊ฐ์ ์ฃผ๋์ด ๊ฐ๋ฐ์๋ ๋น์ ๊ณต์๋ ๋ถ๋ด ์์ด ์ ๊ทผํ ์ ์๋ ์น์ ํ ๊ฐ์ด๋๋ถ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.

์ฑ ์ ๊ธฐ๋ณธ ๊ตฌ์ฑ ๋ฐ ์ฃผ์ ๋ด์ฉ
์ด ์ฑ
์ ๊ธฐ์ดํธ, ์ค์ ํธ, ๊ทธ๋ฆฌ๊ณ GUIํธ์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค. ๊ฐ ์ฅ์ ์ค์ต ์์ฃผ๋ก ์ค๋ช
๋์ด ์์ด์ ์ค์ ๋ก ๋ฐ๋ผํ๋ฉด์ ํ๋ก์ ํธ์ ์ ์ฉํ๊ธฐ ์ฌ์ด ๊ตฌ์ฑ์
๋๋ค. ์ฃผ์ ๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1. ๊ธฐ์ดํธ - Git ์ ๊ธฐ๋ณธ ๊ฐ๋ ๊ณผ ์ฒซ ์ปค๋ฐ ๊ณผ์ ๋ฐ๋ผํ๊ธฐ
Git์ ์ฒ์ ์ฌ์ฉํ๋ ๋ถ๋ค์ ์ํด, ์ค์น ๋ฐฉ๋ฒ๊ณผ ์ด๊ธฐ ์ค์ ์ ๋จผ์ ์๋ดํฉ๋๋ค. 1์ฅ๊ณผ 2์ฅ์์๋ Git์ ์ค์นํ๊ณ ๊ฐ๋จํ ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช
ํ๋ฉฐ, Git์ ์ฒ์ ์ ํ๋ ์ฌ๋๋ ์ดํดํ ์ ์๋๋ก ๊ธฐ์ด์ ์ธ ์ค์ ๋ถํฐ ์ฐจ๊ทผ์ฐจ๊ทผ ์ค๋ช
ํ๊ณ ์์ต๋๋ค. ์ด๋ฅผ ํตํด Git์ ์ํ ํ๊ฒฝ์ ์์ฝ๊ฒ ์ค๋นํ ์ ์์ต๋๋ค.
3์ฅ์์๋ Git์ ์๋ฆฌ๋ฅผ ์ค๋ช
ํ๋๋ฐ, Git์ ์ฒ์ ๋ฐฐ์ฐ๋ ์ฌ๋์๊ฒ ์ค์ํ ์ธ ๊ฐ์ง ์์ญ์ธ ์์
๋๋ ํฐ๋ฆฌ(Working Directory), ์คํ
์ด์ง ์์ญ(Staging Area), ๋ฆฌํฌ์งํฐ๋ฆฌ(Repository)์ ๋ํด ๋ค๋ฃน๋๋ค.


- ์์ ๋๋ ํฐ๋ฆฌ(Working Directory): ํ์ฌ ์์ ์ค์ธ ์์ญ. ์ฌ๊ธฐ์ ํ์ผ์ ์์ ํ๊ณ , ์๋ก ์ถ๊ฐํฉ๋๋ค.
- ์คํ ์ด์ง ์์ญ(Staging Area): ์ปค๋ฐ์ ๋ง๋ค๊ธฐ ์ ์ ๋ณ๊ฒฝ ์ฌํญ์ ์์๋ก ๋ณด๊ดํ๋ ์์ญ์ผ๋ก, ์ฅ๋ฐ๊ตฌ๋์ฒ๋ผ ํ์ํ ๋ณ๊ฒฝ์ฌํญ๋ง ๋ด์๋ ์ ์์ต๋๋ค.
- ๋ฆฌํฌ์งํฐ๋ฆฌ(Repository): ์ต์ข ์ ์ผ๋ก ์ปค๋ฐ๋ ๋ด์ฉ์ด ์ ์ฅ๋๋ ์์ญ. Git์ ๋ชจ๋ ์ปค๋ฐ์ ์ด๊ณณ์ ๊ธฐ๋กํ์ฌ, ํ์ํ ๋ ์ธ์ ๋ ๊ณผ๊ฑฐ ๋ฒ์ ์ผ๋ก ๋๋์๊ฐ ์ ์๋๋ก ํฉ๋๋ค.
์ฑ
์์๋ Git์ ์ธ ๊ฐ์ง ์์ญ์ ์ผํ๋ชฐ ์ฅ๋ฐ๊ตฌ๋์ ๋น์ ํ์ฌ, ๋จ๊ณ๋ง๋ค ์ด๋ค ์ญํ ์ ํ๋์ง ์ฝ๊ฒ ์ดํดํ ์ ์๋๋ก ๋์ต๋๋ค. ์๋ฅผ ๋ค์ด, git add ๋ช
๋ น์ด๋ ์ฅ๋ฐ๊ตฌ๋์ ๋ฌผ๊ฑด์ ๋ด๋ฏ์ด ์คํ
์ด์ง ์์ญ์ ํ์ผ์ ์ถ๊ฐํ๋ ๊ณผ์ ์ด๋ฉฐ, git commit ๋ช
๋ น์ด๋ ์ฅ๋ฐ๊ตฌ๋์ ๋ด๊ธด ๋ฌผ๊ฑด์ ์ต์ข
๊ตฌ๋งคํ๋ ๊ฒ์ฒ๋ผ ๋ฆฌํฌ์งํฐ๋ฆฌ์ ๊ธฐ๋ก์ ๋จ๊ธฐ๋ ๊ณผ์ ์
๋๋ค.
์ด์ฒ๋ผ Git์ ๋ณ๊ฒฝ ์ฌํญ์ ์ธ ๋จ๊ณ๋ก ๋๋์ด ๊ด๋ฆฌํ ์ ์์ด, ์์
์ ๋ณด๋ค ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๋๋ก ๋์ต๋๋ค.
2. ์ค์ ํธ - ์ค๋ฌด์์ ์ ์ฉํ Git ๋ช ๋ น์ด์ ํ์ ๊ธฐ๋ฅ ์ตํ๊ธฐ
์ค์ ํธ์์๋ Git์ ์ค๋ฌด์์ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋๋ก ์์ฃผ ์ฌ์ฉ๋๋ ๋ช
๋ น์ด๋ฅผ ์๊ฐํฉ๋๋ค. ํนํ git rebase์ git reflog๋ ์ค์๋ก ๋ฐ์ํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ฑฐ๋, ์ปค๋ฐ ๊ธฐ๋ก์ ์ ๋ฆฌํ ๋ ๋งค์ฐ ์ ์ฉํ ๋ช
๋ น์ด์
๋๋ค.


- git rebase: ์ปค๋ฐ์ ์์ ํ๊ฑฐ๋, ๋ถํ์ํ ์ปค๋ฐ์ ์ญ์ ํ์ฌ ๊ธฐ๋ก์ ๊น๋ํ๊ฒ ์ ๋ฆฌํ ์ ์๋ ๊ธฐ๋ฅ์ ๋๋ค. pick, reword, fixup, squash์ ๊ฐ์ ์ต์ ์ ํตํด ์ปค๋ฐ์ ์ฌ์ ๋ ฌํ๊ฑฐ๋ ๋ณํฉํ ์ ์์ด ํ์ ์ ์ฝ๋ ํ์คํ ๋ฆฌ๋ฅผ ์ ๋ํ๋ ๋ฐ ์ ์ฉํฉ๋๋ค.
- git reflog: Git์์ ๋ฐ์ํ ๋ชจ๋ ์์ ๊ธฐ๋ก์ ํ์ธํ ์ ์์ด, ์ค์๋ก ์๋ชป๋ ์ปค๋ฐ์ด๋ ๋ธ๋์น๋ฅผ ์ญ์ ํ์ ๋ ๋ณต๊ตฌํ ์ ์๋ ์์ ์ฅ์น์ ๋๋ค. ์ด ๋ช ๋ น์ด๋ฅผ ํตํด ๊ณผ๊ฑฐ ์ปค๋ฐ์ ๋๋์๊ฐ๊ฑฐ๋ ์ค์๋ฅผ ๋ฐ๋ก์ก์ ์ ์์ต๋๋ค.
ํ์
์ค ๋ฐ์ํ ์ ์๋ ์ค์๋ฅผ ๋์ฒํ๋ ๋ฐฉ๋ฒ๋ ์๊ฐ๋ฉ๋๋ค. git reset๊ณผ git revert๋ฅผ ํตํด ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ปค๋ฐ์ ๋๋๋ฆฌ๊ฑฐ๋ ์ทจ์ํ์ฌ ์์
์ํ๋ฅผ ์์ ํ๊ฒ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.

- git reset: ํน์ ์ปค๋ฐ์ผ๋ก ๋๋์๊ฐ๊ฑฐ๋, ์ปค๋ฐ ์์ฒด๋ฅผ ์ญ์ ํ์ฌ ๋ณ๊ฒฝ ์ฌํญ์ ์ทจ์ํ ์ ์๋ ๋ช ๋ น์ด์ ๋๋ค. ํ์ ์ค ๋ถํ์ํ ์ปค๋ฐ์ ์ค์๋ก ์ฌ๋ ธ์ ๋ ์ ์ฉํ์ง๋ง, ๋ค๋ฅธ ํ์์ด ๊ณต์ ํ๋ ๋ธ๋์น์์๋ ์ฌ์ฉ์ ์ฃผ์๊ฐ ํ์ํฉ๋๋ค.
- git revert: ๊ณต์ ๋ธ๋์น์์ ์์ ํ๊ฒ ์ปค๋ฐ์ ์ทจ์ํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ๊ธฐ์กด์ ์ปค๋ฐ์ ๋ฌดํจํํ๋ ์ ์ปค๋ฐ์ ์์ฑํ์ฌ, ํ์คํ ๋ฆฌ๋ฅผ ์ ์งํ๋ฉด์๋ ์์ ์ ์ทจ์ํ ์ ์์ด ํ์ ์ ๋ ์์ ํ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ค์ ํธ์ Git์ ์ค๋ฌด์์ ๋์ฑ ๋ฅ์ํ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ๋์์ค๋๋ค. ์ค์ ํธ์ ํตํด ํ์
๊ณผ์ ์์ ๋ฐ์ํ ์ ์๋ ๋ค์ํ ์ํฉ์ ๋๋นํ๊ณ , Git์ ๋ค์ํ ๊ธฐ๋ฅ์ ๊น์ด ์ดํดํ์ฌ ์ค์๋ฅผ ์ต์ํํ ์ ์์ต๋๋ค.
3. GUI ํธ - GitHub Desktop์ผ๋ก GitHub ์ฝ๊ฒ ๊ด๋ฆฌํ๊ธฐ
Git์ ์ฒ์ ๋ฐฐ์ฐ๊ฑฐ๋, CLI(Command Line Interface)์ ์ต์ํ์ง ์์ ์ฌ์ฉ์์๊ฒ GitHub Desktop์ ๋งค์ฐ ์ ์ฉํ ๋๊ตฌ์
๋๋ค. ์ด ์ฑ
์ 8์ฅ๊ณผ 9์ฅ์์๋ GitHub Desktop๊ณผ ๊ฐ์ GUI(๊ทธ๋ํฝ ์ฌ์ฉ์ ์ธํฐํ์ด์ค) ๋๊ตฌ๋ฅผ ํ์ฉํด Git๊ณผ GitHub๋ฅผ ๋ ์ง๊ด์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ค๋ช
ํฉ๋๋ค.
GitHub Desktop์ ์ฌ์ฉํ๋ฉด ๋ณต์กํ ๋ช
๋ น์ด ์
๋ ฅ ์์ด๋ ํด๋ฆญ ๋ช ๋ฒ์ผ๋ก ๋ธ๋์น๋ฅผ ์์ฑํ๊ฑฐ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ปค๋ฐํ๊ณ , PR(Pull Request)์ ์ฝ๊ฒ ์์ฑํ ์ ์์ต๋๋ค. ์๋ ์ด๋ฏธ์ง์ฒ๋ผ GUI ์์์ ํ์ฌ ๋ธ๋์น ์ํ๋ฅผ ๋ฐ๋ก ํ์ธํ๊ณ , ์ ๋ธ๋์น ์์ฑ๋ ๊ฐ๋จํ ๊ฐ๋ฅํฉ๋๋ค.


9.4 Git ๋ช
๋ น์ด ์์ฝ๊ฒ ์ฌ์ฉํ๊ธฐ์์๋ Git ๋ช
๋ น์ด๋ฅผ GUI ์์์ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ์๋ดํฉ๋๋ค. GitHub Desktop์์๋ git pull, git merge, git push ๋ฑ์ ๋ณต์กํ ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํ์ง ์์๋ ํด๋ฆญ ๋ช ๋ฒ์ผ๋ก ๊ฐ๋จํ ์คํํ ์ ์์ด, CLI์ ์ต์ํ์ง ์์ ์ฌ์ฉ์๋ Git์ ๋ฅ์ํ๊ฒ ๋ค๋ฃฐ ์ ์์ต๋๋ค.
๋ง๋ฌด๋ฆฌ
์ฑ
์ ๊ธฐ์ดํธ์์๋ Git์ ๊ธฐ๋ณธ ๊ฐ๋
๊ณผ ๋ช
๋ น์ด ์ฌ์ฉ๋ฒ์ ์ค๋ช
ํด ๊ธฐ์ด๋ฅผ ํํํ ๋ค์ง ์ ์๊ฒ ํด์ค๋๋ค. Git์ด ์ฒ์์ด๋๋ผ๋, ์ฝ๊ฒ ๋ฐ๋ผํ ์ ์๋ ์ค์ต๊ณผ ์์ ๋ฅผ ํตํด ๊ธฐ๋ณธ ํ๋ฆ์ ์์ฐ์ค๋ฝ๊ฒ ์ดํดํ ์ ์์ต๋๋ค. ์ดํ ์ค์ ํธ์์๋ ์ค๋ฌด์์ ์์ฃผ ๋ฐ์ํ๋ ์ํฉ์ ๋ํ ๋์ฒ๋ฒ๊ณผ ๋ธ๋์น ๊ด๋ฆฌ, ์ปค๋ฐ ๋๋๋ฆฌ๊ธฐ ๋ฑ ํ ํ์
์ ์ ์ฉํ ๊ธฐ๋ฅ๋ค์ ์์ธํ ๋ค๋ค, Git์ ๋ณด๋ค ๋ฅ์ํ๊ฒ ์ฌ์ฉํ ์ ์๋ ๋ฐฉ๋ฒ์ ์๋ ค์ค๋๋ค. Git์ ์ฒ์ ๋ฐฐ์ฐ๊ฑฐ๋ ๋ ์ฒด๊ณ์ ์ผ๋ก ๋ฐฐ์ฐ๊ณ ์ถ์ ๋ถ๋ค๊ป ์ด ์ฑ
์ ์ถ์ฒํฉ๋๋ค.
์ด ์ฑ
์ด ๊ถ๊ธํ์๋ค๋ฉด ์๋ ๋งํฌ์์ ๊ตฌ๋งคํ์ค ์ ์์ต๋๋ค
https://product.kyobobook.co.kr/detail/S000214299095