Git์ ์ฌ์ฉํ๋ค๋ณด๋ฉด ๊ฐ๋ ์ค๋ฅ๋ฅผ ๋ง์ฃผํ๊ณค ํ๋๋ฐ์, ์ญ์๋ ํผ์ ํด๊ฒฐ๋ชปํ์ง๋ง๐ฅฒ ์ด๋ฒ์๋ ๋์ด์ผ๋ณด๋ฉฐ ๋ญ๊ฐ ๋ฌธ์ ์ง ์์๋ฒ๋ ค์ผ๊ฒ ๋ค๋ ์ง๋ ์ผ๋ก ์์ฑํ! ์ ๊ฐ ๋ง์ฃผํ ์ค๋ฅ๊ณผ ์์ธ, ํด๊ฒฐ๋ฐฉ๋ฒ์ ๋ํ ๊ธ์ ๋๋ค. :)
์ํฉ์ ์ด๋ฌํฉ๋๋ค. ๊ณ ๊ตฌ๋ง์ ๊ฐ์๊ฐ ํจ๊ป ์์
์ค์
๋๋ค.
1. ๊ณ ๊ตฌ๋ง Push
2. ๊ฐ์ MR (๋ฉ์ธ๋ธ๋ฐ์น์ ๋ณํฉ ์ )
3. ๊ฐ์์ Merged ํ, ๊ณ ๊ตฌ๋ง๋ pull > rebase > ์ถฉ๋ํด๊ฒฐ > push
4. ์ค๋ฅ ๋ฐ์
! [rejected] <branch-name> -> <branch-name> (non-fast-forward)
error: failed to push some refs to '...'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
์ง์ ํ๊ณ ์์ธ์ ์์๋ด ์๋ค. rebase์ ํน์ง๊ณผ merge์์ ์ฐจ์ด๋ฅผ ์ฐพ์๋ด ๋๋ค.
๋ค์๊ณผ ๊ฐ์ commit ํ์คํ ๋ฆฌ๊ฐ ์๋ ์ํฉ์์ ๋น๊ตํด๋ด
์๋ค.
feature ๋ธ๋์น์์ master ๋ธ๋์น๋ก rebase/merge๋ฅผ ์คํํ ์์์
๋๋ค.
A - B - C (master)
\
D - E - F (feature)
A - B - C - D' - E' - F' (feature)
A - B - C - M (master)
\ /
D - E - F (feature)
pushํ ์ปค๋ฐ ID์ rebaseํ ์ดํ ์ปค๋ฐ ID๊ฐ ๋ถ์ผ์นํฉ๋๋ค.Rebase๋ฅผ ์ฌ์ฉํด์ ๊ทธ๋ฐ๊ฒ์ด์์ต๋๋ค...!!!!!!(๊ทธ๋ด์ค์์๋ค)๐คฆ๐ปโโ๏ธ
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
๋ก์ปฌ ๋ธ๋ฐ์น์ ์ปค๋ฐ ํ์คํ ๋ฆฌ๋ฅผ ์๊ฒฉ ๋ธ๋์น์ ํ์คํ ๋ฆฌ์ ๊ฐ์ ๋ก ์ ์ฉํฉ๋๋ค.
$ git push --force
Cherry Picking ?
์ผ์ดํฌ ์์ ์น์ด์ ธ ์๋ ์ฒด๋ฆฌ๋ง ์ง์ด๋จน๋ ํ์๋ก "์์ ์ด ์ ํํ๊ฒ ์ํ๋ ๋ถ๋ถ๋ง ์ทจํ๋ ํ์"๋ฅผ ๋ปํ๋ค๊ณ ํฉ๋๋ค.
Git์ ์ ์ฉํ๋ฉด, ๋ค๋ฅธ branch์ ์๋ ๋ง์ commit์ค ์ํ๋ commit๋ง ์ ๊ฐ์ ธ์ค๊ธฐ์ธ๊ฑฐ์ฃ !
$ git cherry-pick <commitID ํน์ commitID ์ ์ฌ์ฏ์๋ฆฌ> <commit2> ... <commit5>
์ด๋ ๊ฒ ํด๊ฒฐํ๋ต๋๋ค ๐ค
์ต๊ทผ ์ํฐํด์์ Rebase์ Merge์ ์ฐจ์ด๋ฅผ ์ฌ๋ ธ์๋๋ฐ, ์ด๋ฒ ๋ธ๋ก๊ทธ ์์ฑ์ผ๋ก ๋ ์ ํํ๊ฒ ์ดํดํ๊ฒ ๋์์ต๋๋ค..! Rebase๋ฅผ ์ฌ์ฉํ๋ผ๋ ์ ํ์ฅ๋์ ์ง์๊ฐ ์์์ด์ git์ ์์ํ ๋๋ถํฐ ์์ฐ์ค๋ฝ๊ฒ Rebaseํ๋ ์ต๊ด์ ๋ค์๋๋ฐ ์ด์ ๋ ์ฐจ์ด๋ฅผ ์๊ณ ์ฌ์ฉํ ์ ์๊ฒ ๋์์ต๋๋ค!(์์๋ฒ๋ ค์ Merge๋ง ์ธ๋ฏ..) '์ ๋๋ ์ค๋ฅ๊ฐ ์์ฃผ ๋จ๋๊ฑฐ์ง?'๋ผ๋ ์๊ฐ์ ํ์๋๋ฐ, ๊ทธ์ผ Rebase๋ง ์ฐ๋๊น.. ์ปค๋ฐ ID๊ฐ ๋ฐ๋์ด ๋ฒ๋ฆฌ๋ ํน์ง ๋๋ฌธ์ด์๋ค๋๊ฒ..
๊ฐ์ธ์ ์ธ ์๊ฒฌ์ด์ง๋ง Rebase๋ ์ปค๋ฐ ํ์คํ ๋ฆฌ๋ง ๊น๋ํ๊ฒ ํด์ค ๋ฟ ํฌ๊ฒ ์ฅ์ ์ด ์๋๊ฒ๊ฐ์ต๋๋ค. ์คํ๋ ค ์ปค๋ฐ ํ์คํ ๋ฆฌ๊ฐ ๋ค ๋จ๊ฒ๋๋ Merge๋ฅผ ์ฐ๋ฉด์ ์ปค๋ฐ ๋ฉ์ธ์ง๋ฅผ ๋ ๊ตฌ์ฒด์ ์ผ๋ก ์์ฑํด์ผ๊ฒ ๋ค๋ ์๊ฐ์ ํ์ต๋๋ค. ์ค๋ฅ๊ฐ ๋๋ ์๋ฌด๋ ์ง์๊ฒ ํด๊ฒฐํด๋ฒ๋ฆฌ๋ ๊ทธ๋ ๊น์ง..! ํ์ด๊น
์ฐธ๊ณ ๋ฐ ์ถ์ฒ
https://dongminyoon.tistory.com/9
https://inpa.tistory.com/entry/GIT-%E2%9A%A1%EF%B8%8F-%EC%9B%90%ED%95%98%EB%8A%94-commit-%EA%B0%80%EC%A0%B8%EC%98%A4%EA%B8%B0-cherry-pick
https://velog.io/@juhyeon1114/Git-Cherry-pick
๊ณ ๊ตฌ๋ง ํธ์!!