๋๋์ด ์ ์์ ์ธ ๋ฐฉ๋ฒ๋ค๋ก ๊ผฌ์ธ git์ ํ์ด๋๋ค ์ฐํํ
๋ฌธ์ ์ํฉ ์ ๋ฆฌ(์์๋๋ก)
1. local/feature/modal์ remote์ push
2. origin/feature/modal โก๏ธ origin/master pull request
3. ๋ค๋ฅธ ํ์์ด ๋ค๋ฅธ ๋ธ๋์น์์ ์์ ํ origin/master๋ก merge
pr์์ ๋ฐ์ ํผ๋๋ฐฑ์ ๋ฐ์ํด local/feature/modal ๋ธ๋์น์์ ์ฝ๋๋ฅผ ์์ ํ๊ณ ์ ํ๋ค.
๊ทธ ์ ์ ๋๋ฃ์ ์์ ์ pull ๋ฐ๊ธฐ ์ํด local/master๋ก ์ด๋, git pull origin master ์ ์คํํ๋ค.
์ดํ ๋ค์ local/feature/modal ๋ธ๋์น๋ก ๋์์, pull ๋ฐ์ ์ดํ์ ์ปค๋ฐ๋ถํฐ ์์ ์ ์งํํ๊ธฐ ์ํด local/master์ ๋ํด rebase๋ฅผ ํ๋ค. ์ฌ๊ธฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
์์ ์ ๋ง์น ๋ค์ push๋ฅผ ํ๋ ค๊ณ ํ๋ ๋จผ์ pull์ ๋ฐ์ผ๋ผ๋ ์๋ฌ๊ฐ ๋ด๋ค. ๊ทธ๋์ git graph๋ฅผ ์ดํด๋ณด๋, ์์์ ๋ณด์ด๋ ๊ฒ์ฒ๋ผ ๋์ผํ ๋ด์ฉ์ ๋ค๋ฅธ ์ปค๋ฐ ์์ด๋๋ฅผ ๊ฐ์ง ์ปค๋ฐ๋ค ์ ํ์ธํ ์ ์์๋ค. rebase ๊ณผ์ ์์ ๋ญ๊ฐ ์๋ชป๋ ๋ฏํ๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ
1. pull request ์ดํ ์๋ก ์์ฑํ๋ commit๋ค์ ์ทจ์
2. tmp ๋ธ๋์น๋ฅผ ํ ์๋ก ์์ ํ ์ฝ๋๋ค์ ์ฎ๊ฒผ๋ค. tmp ๋ธ๋์น์์ stash๋ก ์ฝ๋๋ฅผ ๋ณด๊ดํ๋ค.
3. feature/modal ๋ธ๋์น๋ก ๋์์ git reset
์ ํตํด, origin/feature/modal์ ๋ง์ง๋ง ์ปค๋ฐ ์์น๋ก ๋ธ๋์น๋ฅผ ์ด๋์์ผฐ๋ค.( git reset --hard bf98c0d6
) ์ฆ, rebase๋ฅผ ์ทจ์ํจ
4. tmp ๋ธ๋์น์์ apply stash
5. ๊ทธ๋๋ก ๋ค์ feature/modal๋ก ๋์ด์ ์๋ก์ด ์ฝ๋๋ค commit ํ push
master ๋ธ๋์น์์ git pull์ ๋ฐ์ ๋ค์, ํด๋น ์ปค๋ฐ์์๋ถํฐ ๊ธฐ๋ฅ ๋ธ๋์น์ ์์ ์ ์ฌ๊ฐํ๊ธฐ ์ํด git rebase๋ฅผ ์ฌ์ฉํด์๋ค. ๊ธฐ๋ฅ ๋ธ๋์น๊ฐ ์๊ฒฉ์ ์ฅ์์ Push๋ ์ ์ด ์์ ๊ฒฝ์ฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง ์์๋ค. ๊ทธ๋ฌ๋ ์ด๋ฒ์ฒ๋ผ ์ด๋ฏธ push๋ ๋ธ๋์น์ธ ๊ฒฝ์ฐ rebase๊ฐ ์ค๋ณต๋ ์ปค๋ฐ์ ์์ฑํด ๋ฌธ์ ๋ฅผ ์ผ์ผํจ๋ค. rebase ๋จ๋ฐ ๊ธ์ง..
๊ทธ๋ ๋ค๋ฉด ์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ์?
์ด ๊ธ์ ์์ฑํ๋ค ์์์ ์ฅ ํด๋๊ณ ์ฝ 14์ผ๋ง์ ๋๊ฐ์ ๋ฌธ์ ์ ์ง๋ฉดํ๋ค. ์๋ ๊ธ์์ ๋์ ๊ฐ์ ์ง๋ฌธ์ ํ ์ฌ๋์ ์ฐพ์ ์ ์์๋ค.
https://stackoverflow.com/questions/20101994/how-to-git-pull-from-master-into-the-development-branch
๊ฒฐ๋ก ์ ๊ฒฐ๊ตญ rebase๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค๋ ๊ฒ์ด๋ค.
1. ๊ธฐ๋ฅ ๋ธ๋์น๋ก ์ด๋
2. git rebase origin
3. conflict๊ฐ ๋ฐ์ํ๋ค๋ฉด ํด๊ฒฐ
4. git rebase --continue
๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ๋ฐฉ๋ฒ๊ณผ์ ์ฐจ์ด์ ์ rebaseํ๋ ๋ธ๋์น๋ค.
๊ธฐ์กด์๋ local/master์ ๋ํด rebase๋ฅผ ํ๋ค. ์ ๋ฐฉ๋ฒ์ ๊ฒฝ์ฐ origin์ ๋ํด ์ง์ rebase๋ฅผ ํ๋ค.
conflict ๋ ํ์ผ์ ์์ ํ๋๋ ํด๋น ํ์ผ์ด ํฌํจ๋ ์ปค๋ฐ์ ์ปค๋ฐ๋ฉ์์ง๋ฅผ ์์ ํ ์ ์๋ ์ฐฝ์ด ๋ด๋ค. ๊ธฐ์กด ์ปค๋ฐ์ rebase๊ฐ ๋ฐ์๋ ์๋ก์ด ์ปค๋ฐ๋ค์ด ๋ง๋ค์ด์ง๋ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค. ์ด๋ฏธ ๋ฆฌ๋ชจํธ์ push๋ฅผ ํ๋ ์ํ์์ด์, ๊ทธ๋ฅ ํด๋น ๋ฆฌ๋ชจํธ ๋ธ๋์น๋ฅผ ์ญ์ ํ ํ rebase๊ฐ ๋ฐ์๋ ์ปค๋ฐ๋ค์ ๋ค์ pushํ๋ค.
๋จ์ ์๋ฌธ
๊ธฐ๋ฅ ๋ธ๋์น ์์ ๋์ค์ pull์ ๋ฐ์์ผ ํจ
+ ํด๋น ๊ธฐ๋ฅ ๋ธ๋์น๊ฐ ๋ฆฌ๋ชจํธ์ push๋ ์ ์ด ์์
์ด๋ ๋ฌธ์ ์์ด ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์?
๊ทธ๋๋ ์์ธํ ๊ธฐ๋กํด ๋์๋๋ ๋น์ทํ ๋ฌธ์ ๋ฅผ ๋ง์ฃผํ์ ๋ ๋ณต๊ธฐ๊ฐ ์๋์ด์ ์ข๋ค.