๐ Chapter 3: Git ๋ธ๋์น
๐ฆ ๋ธ๋์น๋ ๋ฌด์์ธ๊ฐโ
๐ฃ ์ ๋ธ๋์น ์์ฑํ๊ธฐโ
git branch
๋ช
๋ น์ผ๋ก testing
๋ธ๋์น ์์ฑ
> git branch testing
์๋ก ๋ง๋ ๋ธ๋์น๋ ์ง๊ธ ์์ ํ๊ณ ์๋ ๋ง์ง๋ง ์ปค๋ฐ์ ๊ฐ๋ฆฌํจ๋ค.
์ง๊ธ ์์
์ค์ด ๋ธ๋์น๊ฐ ๋ฌด์์ธ์ง Git์ ์ด๋ป๊ฒ ํ์
ํ ๊น. ๋ค๋ฅธ ๋ฒ์ ๊ด๋ฆฌ ์์คํ
๊ณผ๋ ๋ฌ๋ฆฌ Git์ HEAD
๋ผ๋ ํน๋ณํ ํฌ์ธํฐ๊ฐ ์๋ค. ์ด ํฌ์ธํฐ๋ ์ง๊ธ ์์
ํ๋ ๋ก์ปฌ ๋ธ๋์น๋ฅผ ๊ฐ๋ฆฌํจ๋ค. ๋ธ๋์น๋ฅผ ์๋ก ๋ง๋ค์์ง๋ง, Git์ ์์ง master
๋ธ๋์น๋ฅผ ๊ฐ๋ฆฌํค๊ณ ์๋ค. git branch
๋ช
๋ น์ ๋ธ๋์น๋ฅผ ๋ง๋ค๊ธฐ๋ง ํ๊ณ ๋ธ๋์น๋ฅผ ์ฎ๊ธฐ์ง ์๋๋ค.
๐ฃ ๋ธ๋์น ์ด๋ํ๊ธฐโ
git checkout
๋ช
๋ น์ผ๋ก ๋ค๋ฅธ ๋ธ๋์น๋ก ์ด๋ํ ์ ์๋ค. ํ๋ฒ testing
๋ธ๋์น๋ก ๋ฐ๊ฟ๋ณด์.
> git checkout testing
์ด๋ ๊ฒ ํ๋ฉด HEAD
๋ testing
๋ธ๋์น๋ฅผ ๊ฐ๋ฆฌํจ๋ค.
์์ผ๋ก ์ปค๋ฐ์ ํ๋ฉด ๋ค๋ฅธ ๋ธ๋์น์ ์์
๋ค๊ณผ ๋ณ๊ฐ๋ก ์งํ๋๊ธฐ ๋๋ฌธ์ testing
๋ธ๋์น์์ ์์๋ก ์์
ํ๊ณ ์๋ master
๋ธ๋์น๋ก ๋์์์ ํ๋ ์ผ์ ๊ณ์ํ ์ ์๋ค.
๋ธ๋์น๋ฅผ ์ด๋ํ๋ฉด ์ํน ๋๋ ํฐ๋ฆฌ์ ํ์ผ์ด ๋ณ๊ฒฝ๋๋ค๋ ์ ์ ๊ธฐ์ตํด๋์ด์ผ ํ๋ค. ์ด์ ์ ์์ ํ๋ ๋ธ๋์น๋ก ์ด๋ํ๋ฉด ์ํน ๋๋ ํฐ๋ฆฌ์ ํ์ผ์ ๊ทธ ๋ธ๋์น์์ ๊ฐ์ฅ ๋ง์ง๋ง์ผ๋ก ํ๋ ์์ ๋ด์ฉ์ผ๋ก ๋ณ๊ฒฝ๋๋ค. ํ์ผ ๋ณ๊ฒฝ ์ ๋ฌธ์ ๊ฐ ์์ด ๋ธ๋์น๋ฅผ ์ด๋์ํค๋ ๊ฒ ๋ถ๊ฐ๋ฅํ ๊ฒฝ์ฐ Git์ ๋ธ๋์น ์ด๋ ๋ช ๋ น์ ์ํํ์ง ์๋๋ค.
ํ๋ก์ ํธ ํ์คํ ๋ฆฌ๋ ๋ถ๋ฆฌ๋ผ ์งํํ๋ค. ์ฐ๋ฆฌ๋ ๋ธ๋์น๋ฅผ ํ๋ ๋ง๋ค์ด ๊ทธ ๋ธ๋์น์์ ์ผ์ ์ข ํ๊ณ , ๋ค์ ์๋ ๋ธ๋์น๋ก ๋๋์์์ ๋ค๋ฅธ ์ผ์ ํ๋ค. ๋ ์์ ๋ด์ฉ์ ์๋ก ๋ ๋ฆฝ์ ์ผ๋ก ๊ฐ ๋ธ๋์น์ ์กด์ฌํ๋ค. ์ปค๋ฐ ์ฌ์ด๋ฅผ ์์ ๋กญ๊ฒ ์ด๋ํ๋ค๊ฐ ๋๊ฐ ๋๋ฉด ๋ ๋ธ๋์น๋ฅผ Mergeํ๋ค.
์ค์ ๋ก Git์ ๋ธ๋์น๋ ์ด๋ค ํ ์ปค๋ฐ์ ๊ฐ๋ฆฌํค๋ 40๊ธ์์ SHA-1 ์ฒดํฌ์ฌ ํ์ผ์ ๋ถ๊ณผํ๊ธฐ ๋๋ฌธ์ ๋ง๋ค๊ธฐ๋ ์ฝ๊ณ ์ง์ฐ๊ธฐ๋ ์ฝ๋ค. ์๋ก ๋ธ๋์น๋ฅผ ํ๋ ๋ง๋๋ ๊ฒ์ 41๋ฐ์ดํธ ํฌ๊ธฐ์ ํ์ผ์ ํ๋ ๋ง๋๋ ๊ฒ์ ๋ถ๊ณผํ๋ค.
์ปค๋ฐ์ ํ ๋๋ง๋ค ์ด์ ์ปค๋ฐ์ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ธฐ ๋๋ฌธ์ Mergeํ ๋ ์ด๋์๋ถํฐ ํฉ์ณ์ผ ํ๋์ง ์๋ค.
๐ฆ ๋ธ๋์น์ Merge์ ๊ธฐ์ดโ
- ์์ ์ค์ธ ์น์ฌ์ดํธ๊ฐ ์๋ค.
- ์๋ก์ด ์ด์๋ฅผ ์ฒ๋ฆฌํ ์ Branch๋ฅผ ํ๋ ์์ฑํ๋ค.
- ์๋ก ๋ง๋๋ Branch์์ ์์ ์ ์งํํ๋ค.
์ด๋ ์ค์ํ ๋ฌธ์ ๊ฐ ์๊ฒจ์ ๊ทธ๊ฒ์ ํด๊ฒฐํ๋ Hotfix๋ฅผ ๋จผ์ ๋ง๋ค์ด์ผ ํ๋ค. ๊ทธ๋ฌ๋ฉด ์๋์ ๊ฐ์ด ํ ์ ์๋ค.
- ์๋ก์ด ์ด์๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ด์ ์ ์ด์ ๋ธ๋์น๋ก ์ด๋ํ๋ค.
- Hotfix ๋ธ๋์น๋ฅผ ์๋ก ํ๋ ์์ฑํ๋ค.
- ์์ ํ Hotfix ํ ์คํธ๋ฅผ ๋ง์น๊ณ ์ด์ ๋ธ๋์น๋ก Mergeํ๋ค.
- ๋ค์ ์์ ํ๋ ๋ธ๋์น๋ก ์ฎ๊ฒจ๊ฐ์ ํ๋ ์ผ์ ์งํํ๋ค.
๐ฃ ๋ธ๋์น์ ๊ธฐ์ดโ
๋ธ๋์น๋ฅผ ์ด๋ํ๋ ค๋ฉด ํด์ผ ํ ์ผ์ด ์๋ค. ์์ง ์ปค๋ฐํ์ง ์์ ํ์ผ์ด Checkoutํ ๋ธ๋์น์ ์ถฉ๋ ๋๋ฉด ๋ธ๋์น๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ค. ๋ธ๋์น๋ฅผ ๋ณ๊ฒฝํ ๋์๋ ์ํน ๋๋ ํฐ๋ฆฌ๋ฅผ ์ ๋ฆฌํ๋ ๊ฒ์ด ์ข๋ค. ์์
ํ๋ ๊ฒ์ ๋ชจ๋ ์ปค๋ฐํ๊ณ master
๋ธ๋์น๋ก ์ฎ๊ธด๋ค.
Mergeํ ๋ธ๋์น๊ฐ ๊ฐ๋ฆฌํค๋ ์ปค๋ฐ์ด ํ ๋ธ๋์น ์ปค๋ฐ์ Upstream ๋ธ๋์น์ด๊ธฐ ๋๋ฌธ์ master ๋ธ๋์น ํฌ์ธํฐ๋ Merge ๊ณผ์ ์์ด ๊ทธ์ ์ต์ ์ปค๋ฐ์ผ๋ก ์ด๋ํ๋ค. ์ด๋ฐ Merge ๋ฐฉ์์ Fast Forward
๋ผ๊ณ ๋ถ๋ฅธ๋ค. ๋ค์ ๋งํด A ๋ธ๋์น์์ ๋ค๋ฅธ B ๋ธ๋์น๋ฅผ Mergeํ ๋ B ๋ธ๋์น๊ฐ A ๋ธ๋์น ์ดํ ์ปค๋ฐ์ ๊ฐ๋ฆฌ ํค๊ณ ์์ผ๋ฉด ๊ทธ์ A ๋ธ๋์น๊ฐ B ๋ธ๋์น์ ๋์ผํ ์ปค๋ฐ์ ๊ฐ๋ฆฌํค๋๋ก ์ด๋์ํฌ ๋ฟ์ด๋ค.
๋ ์ด์ ํ์์๋ hotfix
๋ธ๋์น๋ ์ญ์ ํ๋ค. git branch
๋ช
๋ น์ด์ -d
์ต์
์ ์ฃผ๊ณ ๋ธ๋์น๋ฅผ ์ญ์ ํ๋ค.
> git branch -d hotfix
๐ฃ Merge์ ๊ธฐ์ดโ
hotfix
๋ฅผ Mergeํ์ ๋์ ๋ฉ์์ง๊ฐ ๋ค๋ฅด๋ค. ํ์ฌ ๋ธ๋์น๊ฐ ๊ฐ๋ฆฌํค๋ ์ปค๋ฐ์ด Mergeํ ๋ธ๋์น์ ์กฐ์์ด ์๋๋ฏ๋ก Git์ Fast-forward
๋ก Mergeํ์ง ์๋๋ค. ์ด ๊ฒฝ์ฐ์๋ Git์ ๊ฐ ๋ธ๋์น๊ฐ ๊ฐ๋ฆฌํค๋ ์ปค๋ฐ ๋ ๊ฐ์ ๊ณตํต ์กฐ์ ํ๋๋ฅผ ์ฌ์ฉํ์ฌ 3-way Merge๋ฅผ ํ๋ค.
๋จ์ํ ๋ธ๋์น ํฌ์ธํฐ๋ฅผ ์ต์ ์ปค๋ฐ์ผ๋ก ์ฎ๊ธฐ๋ ๊ฒ ์๋๋ผ 3-way Merge์ ๊ฒฐ๊ณผ๋ฅผ ๋ณ๋์ ์ปค๋ฐ์ผ๋ก ๋ง๋ค๊ณ ๋์ ํด๋น ๋ธ๋์น๊ฐ ๊ทธ ์ปค๋ฐ์ ๊ฐ๋ฆฌํค๋๋ก ์ด๋์ํจ๋ค. ๊ทธ๋์ ์ด๋ฐ ์ปค๋ฐ์ ๋ถ๋ชจ๊ฐ ์ฌ๋ฌ ๊ฐ๊ณ Merge ์ปค๋ฐ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
Git์ Mergeํ๋๋ฐ ํ์ํ ์ต์ ์ ๊ณตํต ์กฐ์์ ์๋์ผ๋ก ์ฐพ๋๋ค.
๐ฃ ์ถฉ๋์ ๊ธฐ์ดโ
๊ฐ๋ 3-way Merge๊ฐ ์คํจํ ๋๋ ์๋ค. Mergeํ๋ ๋ ๋ธ๋์น์์ ๊ฐ์ ํ์ผ์ ํ ๋ถ๋ถ์ ๋์์ ์์ ํ๊ณ Mergeํ๋ฉด Git์ ํด๋น ๋ถ๋ถ์ Mergeํ์ง ๋ชปํ๋ค. ์ด๋ด ๊ฒฝ์ฐ ์ถฉ๋(Conflict) ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํ๋ค.
Git์ด ์๋์ผ๋ก Mergeํ์ง ๋ชปํ๊ธฐ์ ์ ์ปค๋ฐ์ด ์๊ธฐ์ง ์๋๋ค. ๋ณ๊ฒฝ์ฌํญ์ ์ถฉ๋์ ๊ฐ๋ฐ์๊ฐ ํด๊ฒฐํ์ง ์๋ ํ Merge ๊ณผ์ ์ ์งํํ ์ ์๋ค. Merge ์ถฉ๋์ด ์ผ์ด๋ฌ์ ๋ Git์ด ์ด๋ค ํ์ผ์ Mergeํ ์ ์์๋์ง ์ดํด๋ณด๋ ค๋ฉด git status
๋ช
๋ น์ ์ด์ฉํ๋ค.
์ถฉ๋์ด ์ผ์ด๋ ํ์ผ์ unmerged
์ํ๋ก ํ์๋๋ค. Git์ ์ถฉ๋์ด ๋ ๋ถ๋ถ์ ํ์ค ํ์์ ๋ฐ๋ผ ํ์ํด์ค๋ค. ๊ทธ๋ฌ๋ฉด ๊ฐ๋ฐ์๋ ํด๋น ๋ถ๋ถ์ ์๋์ผ๋ก ํด๊ฒฐํ๋ค. ์ด๋ ๊ฒ ์ถฉ๋ํ ๋ถ๋ถ์ ํด๊ฒฐํ๊ณ git add
๋ช
๋ น์ผ๋ก ๋ค์ Git์ ์ ์ฅํ๋ค.
๐ฆ ๋ธ๋์น ๊ด๋ฆฌโ
git branch
๋ช
๋ น์ ๋จ์ํ ๋ธ๋์น๋ฅผ ๋ง๋ค๊ณ ์ญ์ ํ๋ ๊ฒ์ด ์๋๋ค. ์๋ฌด๋ฐ ์ต์
์์ด ์คํํ๋ฉด ๋ธ๋์น์ ๋ชฉ๋ก์ ๋ณด์ฌ์ค๋ค.
git branch -v
๋ช
๋ น์ ์คํํ๋ฉด ๋ธ๋์น๋ง๋ค ๋ง์ง๋ง ์ปค๋ฐ ๋ฉ์์ง๋ ํจ๊ผ ๋ณด์ฌ์ค๋ค.
๊ฐ ๋ธ๋์น๊ฐ ์ง๊ธ ์ด๋ค ์ํ์ธ์ง ํ์ธํ๊ธฐ์ ์ข์ ์ต์
๋ ์๋ค. ํ์ฌ Checkout ํ ๋ธ๋์น๋ฅผ ๊ธฐ์ค์ผ๋ก --merged
์ --no--merged
์ต์
์ ์ฌ์ฉํ๋ฉฐ Merge๋ ๋ธ๋์น์ธ์ง ๊ทธ๋ ์ง ์์ ๋ธ๋์น์ธ์ง ํํฐ๋งํด ๋ณผ ์ ์๋ค. git branch --merged
๋ช
๋ น์ด๋ก ์ด๋ฏธ Mergeํ ๋ธ๋์น ๋ชฉ๋ก์ ํ์ธํ๋ค.
๐ฆ ๋ธ๋์น ์ํฌํ๋กโ
๐ฃ Long-Running ๋ธ๋์นโ
๋ฐฐํฌํ๊ฑฐ๋ ๋ฐฐํฌํ ์ฝ๋๋ง master
๋ธ๋์น์ Mergeํด์ ์์ ๋ฒ์ ์ ์ฝ๋๋ง master
๋ธ๋์น์ ๋๋ค. ๊ฐ๋ฐ์ ์งํํ๊ณ ์์ ํํ๋ ๋ธ๋์น๋ develop์ด๋ next๋ผ๋ ์ด๋ฆ์ผ๋ก ์ถ๊ฐ๋ก ๋ง๋ค์ด ์ฌ์ฉํ๋ค. ์ด ๋ธ๋์น๋ ์ธ์ ๊ฐ ์์ ์ํ๊ฐ ๋๊ฒ ์ง๋ง, ํญ์ ์์ ์ํ๋ฅผ ์ ์งํด์ผ ํ๋ ๊ฒ์ด ์๋๋ค. ํ
์คํธ๋ฅผ ๊ฑฐ์ณ์ ์์ ์ ์ด๋ผ๊ณ ํ๋จ๋๋ฉด master
๋ธ๋์น์ Mergeํ๋ค. ํ ํฝ ๋ธ๋์น์๋ ์ ์ฉํ ์ ์๋๋ฐ, ํด๋น ํ ํฝ์ ์ฒ๋ฆฌํ๊ณ ํ
์คํธํด์ ๋ฒ๊ทธ๋ ์๊ณ ์์ ์ ์ด๋ฉด ๊ทธ๋ Mergeํ๋ค.
์ฌ์ค ์ฐ๋ฆฌ๊ฐ ์๊ธฐํ๋ ๊ฒ์ ์ปค๋ฐ์ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ์ ๋ํ ์๊ธฐ๋ค. ์ปค๋ฐ ํฌ์ธํฐ๋ฅผ ๋ง๋ค๊ณ ์์ ํ๊ณ ๋ถ๋ฆฌํ๊ณ ํฉ์น๋์ง์ ๋ํ ๊ฒ์ด๋ค. ๊ฐ๋ฐ ๋ธ๋์น๋ ๊ณต๊ฒฉ์ ์ผ๋ก ํ์คํ ๋ฆฌ๋ฅผ ๋ง๋ค์ด ๋์๊ฐ๊ณ ์์ ๋ธ๋์น๋ ์ด๋ฏธ ๋ง๋ ํ์คํ ๋ฆฌ๋ฅผ ๋ค๋ฐ๋ฅด๋ฉฐ ๋์๊ฐ๋ค.
์ฝ๋๋ฅผ ์ฌ๋ฌ ๋จ๊ณ๋ก ๋๋์ด ์์ ์ฑ์ ๋์ฌ๊ฐ๋ฉฐ ์ด์ํ ์ ์๋ค. ํ๋ก์ ํธ ๊ท๋ชจ๊ฐ ํฌ๋ฉด proposed ํน์ pu(proposed updates)๋ผ๋ ์ด๋ฆ์ ๋ธ๋์น๋ฅผ ๋ง๋ค๊ณ next๋ mater ๋ธ๋์น์์ ์์ง Mergeํ ์ค๋น๊ฐ ๋์ง ์์ ๊ฒ์ ์ผ๋จ Merge์ํจ๋ค. ์ค์ํ ๊ฐ๋ ์ ๋ธ๋์น๋ฅผ ์ด์ฉํด ์ฌ๋ฌ ๋จ๊ณ์ ๊ฑธ์ณ์ ์์ ํํด ๋์๊ฐ๋ฉด์ ์ถฉ๋ถํ ์์ ํ๊ฐ ๋์ ๋ ์์ ๋ธ๋์น๋ก Mergeํ๋ค๋ ์ ์ด๋ค. ๋ค์ ๋งํด์ Long-Running์ ๋ธ๋์น๊ฐ ์ฌ๋ฌ ๊ฐ์ผ ํ์์ ์์ง๋ง ์ ๋ง ์ ์ฉํ ํ ์ ์๋ค
๐ฃ ํ ํฝ ๋ธ๋์นโ
ํ ํฝ ๋ธ๋์น๋ ์ด๋ค ํ ๊ฐ์ง ์ฃผ์ ๋ ์์ ์ ์ํด ๋ง๋ ์งง์ ํธํก์ ๋ธ๋์น๋ค. ๋ณดํต ์ฃผ์ ๋ณ๋ก ๋ธ๋์น๋ฅผ ๋ง๋ค๊ณ , ๊ฐ๊ฐ์ ๋ ๋ฆฝ๋ผ ์๊ธฐ ๋๋ฌธ์ ๋งค์ฐ ์ฝ๊ฒ ์ปจํ ์คํธ ์ฌ์ด๋ฅผ ์ฎ๊ฒจ ๋ค๋ ์ ์๋ค. ๋ฌถ์ ๋ณ๋ก ๋๋ ์ ์ผํ๋ฉด ๋ด์ฉ๋ณ๋ก ๊ฒํ ํ๊ธฐ์๋, ํ ์คํธํ๊ธฐ์๋ ๋ ํธํ๋ค. ๊ฐ ์์ ์ ํ๋ฃจ๋ ํ ๋ฌ์ด๋ ์ ์งํ๋ค๊ฐ master ๋ธ๋์น์ Mergeํ ์์ ์ด ๋๋ฉด ์์์ ๊ด๊ณ์์ด ๊ทธ ๋ Mergeํ๋ฉด ๋๋ค.
๐ฆ ๋ฆฌ๋ชจํธ ๋ธ๋์นโ
๋ฆฌ๋ชจํธ Refs๋ ๋ฆฌ๋ชจํธ ์ ์ฅ์์ ์๋ ํฌ์ธํฐ์ธ ๋ ํผ๋ฐ์ค๋ค. ๋ฆฌ๋ชจํธ ์ ์ฅ์์ ์๋ ๋ธ๋์น, ํ๊ทธ ๋ฑ๋ฑ์ ์๋ฏธํ๋ค. git ls-remote (remote)
๋ช
๋ น์ผ๋ก ๋ชจ๋ ๋ฆฌ๋ชจํธ Refs๋ฅผ ์กฐํํ ์ ์๋ค. git remote show (remote)
๋ช
๋ น์ ๋ชจ๋ ๋ฆฌ๋ชจํธ ๋ธ๋์น์ ๊ทธ ์ ๋ณด๋ฅผ ๋ณด์ฌ์ค๋ค. ๋ฆฌ๋ชจํธ Refs๊ฐ ์์ง๋ง ๋ณดํต ๋ฆฌ๋ชจํธ ํธ๋ํน ๋ธ๋์น๋ฅผ ์ฌ์ฉํ๋ค.
๋ฆฌ๋ชจํธ ํธ๋ํน ๋ธ๋์น๋ ๋ฆฌ๋ชจํธ ๋ธ๋์น๋ฅผ ์ถ์ ํ๋ ๋ธ๋์น๋ค. ์ด ๋ธ๋์น๋ ๋ก์ปฌ์ ์์ง๋ง ์์ง์ผ ์ ์๋ค. ๋ฆฌ๋ชจํธ ์๋ฒ์ ์ฐ๊ฒฐํ ๋๋ง๋ค ๋ฆฌ๋ชจํธ ๋ธ๋์น์ ๋ฐ๋ผ์ ์๋์ผ๋ก ์์ง์ผ ๋ฟ์ด๋ค.
๋ฆฌ๋ชจํธ ๋ธ๋์น์ ์ด๋ฆ์ (remote)/(branch) ํ์์ผ๋ก ๋์ด ์๋ค. (ex. origin/master) origin์ผ๋ก๋ถํฐ ์ ์ฅ์ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ๋ด๋ ค๋ฐ๊ณ master ๋ธ๋์น๋ฅผ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ๋ฅผ ๋ง๋ ๋ค. ์ด ํฌ์ธํฐ๋ origin/mater๋ผ๊ณ ๋ถ๋ฅด๊ณ ๋ฉ๋๋ก ์กฐ์ข ํ ์ ์๋ค. ๊ทธ๋ฆฌ๊ณ Git์ ๋ก์ปฌ์ master ๋ธ๋์น๊ฐ origin/mater๋ฅผ ๊ฐ๋ฆฌํค๊ฒ ํ๋ค. ์ด์ master ๋ธ๋์น์์ ์์ ์ ์์ํ ์ ์๋ค.
๋ฆฌ๋ชจํธ ์๋ฒ๋ก๋ถํฐ ์ ์ฅ์ ์ ๋ณด๋ฅผ ๋๊ธฐํํ๋ ค๋ฉด git fetch origin
๋ช
๋ น์ ์ฌ์ฉํ๋ค. ๋ช
๋ น์ ์คํํ๋ฉด ์ฐ์ origin ์๋ฒ์ ์ฃผ์ ์ ๋ณด๋ฅผ ์ฐพ์์, ํ์ฌ ๋ก์ปฌ์ ์ ์ฅ์๊ฐ ๊ฐ๊ณ ์์ง ์์ ์๋ก์ด ์ ๋ณด๊ฐ ์์ผ๋ฉด ๋ชจ๋ ๋ด๋ ค๋ฐ๊ณ , ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ก์ปฌ ์ ์ฅ์์ ์
๋ฐ์ดํธํ๊ณ ๋์, origin/master ํฌ์ธํฐ์ ์์น๋ฅผ ์ต์ ์ปค๋ฐ์ผ๋ก ์ด๋์ํจ๋ค.
๐ฃ Pushํ๊ธฐโ
๋ก์ปฌ์ ๋ธ๋์น๋ฅผ ์๋ฒ๋ก ์ ์กํ๋ ค๋ฉด ์ฐ๊ธฐ ๊ถํ์ด ์๋ ๋ฆฌ๋ชจํธ ์ ์ฅ์์ Pushํด์ผ ํ๋ค. ๋ก์ปฌ ์ ์ฅ์์ ๋ธ๋์น๋ ์๋์ผ๋ก ๋ฆฌ๋ชจํธ ์ ์ฅ์๋ก ์ ์ก๋์ง ์๋๋ค. ๋ช ์์ ์ผ๋ก ๋ธ๋์น๋ฅผ Pushํด์ผ ์ ๋ณด๊ฐ ์ ์ก๋๋ค. ๋ฐ๋ผ์ ๋ฆฌ๋ชจํธ ์ ์ฅ์์ ์ ์กํ์ง ์๊ณ ๋ก์ปฌ ๋ธ๋์น์๋ง ๋๋ ๋น๊ณต๊ฐ ๋ธ๋์น๋ฅผ ๋ง๋ค ์ ์๋ค. ๋ ๋ค๋ฅธ ์ฌ๋๊ณผ ํ์ ํ๊ธฐ ์ํด ํ ํฝ ๋ธ๋์น๋ง ์ ์กํ ์๋ ์๋ค.
> git push (remote) (branch)
Fetch ๋ช ๋ น์ผ๋ก ๋ฆฌ๋ชจํธ ํธ๋ํน ๋ธ๋์น๋ฅผ ๋ด๋ ค ๋ฐ๋๋ค๊ณ ํด์ ๋ก์ปฌ ์ ์ฅ์์ ์์ ํ ์ ์๋ ๋ธ๋์น๊ฐ ์๋ก ์๊ธฐ๋ ๊ฒ์ด ์๋๋ค. ๋ค์ ๋งํด์ ๋ธ๋์น๊ฐ ์๊ธฐ๋ ๊ฒ์ด ์๋๋ผ ๊ทธ์ ์์ ๋ชปํ๋ origin ๋ธ๋์น ํฌ์ธํฐ๊ฐ ์๊ธฐ๋ ๊ฒ์ด๋ค.
๐ฃ ๋ธ๋์น ์ถ์ โ
๋ฆฌ๋ชจํธ ํธ๋ํน ๋ธ๋์น๋ฅผ ๋ก์ปฌ ๋ธ๋์น๋ก Checkoutํ๋ฉด ์๋์ผ๋ก ํธ๋ํน ๋ธ๋์น๊ฐ ๋ง๋ค์ด์ง๋ค. ํธ๋ํน ๋ธ๋์น๋ ๋ฆฌ๋ชจํธ ๋ธ๋์น์ ์ง์ ์ ์ธ ์ฐ๊ฒฐ๊ณ ๋ฆฌ๊ฐ ์๋ ๋ก์ปฌ ๋ธ๋์น์ด๋ค. ํธ๋ํน ๋ธ๋์น์์ git pull
๋ช
๋ น์ ๋ด๋ฆฌ๋ฉด ๋ฆฌ๋ชจํธ ์ ์ฅ์๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๋ด๋ ค๋ฐ์ ์ฐ๊ฒฐ๋ ๋ฆฌ๋ชจํธ ๋ธ๋์น์ ์๋์ผ๋ก Mergeํ๋ค.
์๋ฒ๋ก๋ถํฐ ์ ์ฅ์๋ฅผ Clone์ ํ๋ฉด Git์ ์๋์ผ๋ก master ๋ธ๋์น๋ฅผ origin/master ๋ธ๋์น์ ํธ๋ํน ๋ธ๋์น๋ก ๋ง๋ ๋ค. ํธ๋ํน ๋ธ๋์น๋ฅผ ์ง์ ๋ง๋ค ์ ์๋๋ฐ ๋ฆฌ๋ชจํธ๋ฅผ origin์ด ์๋ ๋ค๋ฅธ ๋ฆฌ๋ชจํธ๋ก ํ ์๋ ์๊ณ , ๋ธ๋์น๋ master๊ฐ ์๋ ๋ค๋ฅธ ๋ธ๋์น๋ก ์ถ์ ํ ์ ์๋ค.
๋ฆฌ๋ชจํธ ๋ธ๋์น์ ๋ค๋ฅธ ์ด๋ฆ์ผ๋ก ๋ธ๋์น๋ฅผ ๋ง๋ค๋ ค๋ฉด ๋ก์ปฌ ๋ธ๋์น์ ์ด๋ฆ์ ์๋์ ๊ฐ์ด ๋ค๋ฅด๊ฒ ์ง์ ํ๋ค.
> git checkout -b sf origin/serverfix
์ด์ sf
๋ธ๋์น์์ Push๋ Pullํ๋ฉด ์๋์ผ๋ก origin/serverfix๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๊ฑฐ๋ ๊ฐ์ ธ์จ๋ค.
์ถ์ ๋ธ๋์น๊ฐ ํ์ฌ ์ด๋ป๊ฒ ์ค์ ๋์ด ์๋์ง ํ์ธํ๋ ค๋ฉด git branch
๋ช
๋ น์ -vv
์ต์
์ ๋ํ๋ค. ์ด ๋ช
๋ น์ ์คํํ๋ฉด ๋ก์ปฌ ๋ธ๋์น ๋ชฉ๋ก๊ณผ ๋ก์ปฌ ๋ธ๋์น๊ฐ ์ถ์ ํ๊ณ ์๋ ๋ฆฌ๋ชจํธ ๋ธ๋์น๋ ํจ๊ป ๋ณด์ฌ์ค๋ค. ๊ฒ๋ค๊ฐ ๋ก์ปฌ ๋ธ๋์น๊ฐ ์์๊ฐ๋์ง ๋ค์ฒ์ง๋์ง์ ๋ํ ๋ด์ฉ๋ ๋ณด์ฌ์ค๋ค.
> git branch -vv
๐ฃ Pullํ๊ธฐโ
git fetch
๋ช
๋ น์ ์คํํ๋ฉด ์๋ฒ์๋ ์กด์ฌํ์ง๋ง, ๋ก์ปฌ์๋ ์์ง ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์์ ์ ์ฅํ๋ค. ์ด๋ ์ํน ๋๋ ํฐ๋ฆฌ์ ํ์ผ ๋ด์ฉ์ ๋ณ๊ฒฝ๋์ง ์๊ณ ๊ทธ๋๋ก ๋จ๋๋ค. ์๋ฒ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์์ ์ ์ฅํด๋๊ณ ์ฌ์ฉ์๊ฐ Mergeํ๋๋ก ์ค๋น๋ง ํด๋๋ค.
๊ฐ๋จํ ๋งํ๋ฉด git pull
๋ช
๋ น์ ๋๋ถ๋ถ git fetch
๋ช
๋ น์ ์คํํ๊ณ ๋์ ์๋์ผ๋ก git merge
๋ช
๋ น์ ์ํํ๋ ๊ฒ๋ฟ์ด๋ค.
์ผ๋ฐ์ ์ผ๋ก fetch
์ merge
๋ช
๋ น์ ๋ช
์์ ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ์ด pull
๋ช
๋ น์ผ๋ก ํ ๋ฒ์ ๋ ์์
์ ํ๋ ๊ฒ๋ณด๋ค ๋ซ๋ค.