์์
ํ๋ ์์ค์ develop branch๋ฅผ origin์์ pullํ๋ ค๋ค๊ฐ Fast Forward if possible
์ด๋ผ๋ ๊ฒ์ ๋ณด๊ฒ๋์๋ค. ์ด๊ฑด ๋ฌด์์ธ๊ฐ?
์์๋ณผ ๋ ์
git kraken์๋ pull ๋ฒํผ ์๋์ ์ต์ ์ ์ ํํ ์ ์๋ค. ์ฌ๊ธฐ์ Fast forward๊ฐ ๋ฌด์์ธ์ง ์์๋ณด๋ ๊ฒ์ด ์ด ํฌ์คํ ์ ๋ชฉํ์ด๋ค.
Objective
- Hotfix branch๋ฅผ ๋ง๋ค์ด ๊ธํ ๋ถ์ ๋ ๋ค, master์ ๋ฐ์ํ๋ค.
- ๊ธฐ์กด์ ์์ ํ๊ณ ์๋ issue๋ฅผ ์ฒ๋ฆฌํ๊ณ master์ ๋ฐ์ํ๋ค.
git๋ฌธ์์์๋ ์ ๋๊ฐ์ง ์์ ์ ํ๋ฉด์ fast forward์ merge์ ๋ํด ์ค๋ช ํ๋ค.
์ผ๋จ ์ด๊ธฐ ์ํ๋ 3๊ฐ์ ์ปค๋ฐ์ด master์ ์๋ค๊ณ ํ์. CS๊ฐ ๋ค์ด์ค์ง ์์ ์ํ์ด๋, ์ ๋ฌด ์ฒ๋ฆฌ๋ฅผ ์ํด issue๋ฅผ ํ๋ ๋ค๊ณ ์๋ค.
master๋ธ๋์น์ ๊ฐ์ฅ ์ต์ ์ปค๋ฐ์ ๊ธฐ์ค์ผ๋ก branching ํ ํ, ์์ ์ ์ด์ด๊ฐ๋ค. C3 commit์ด ์์ฑ๋์๋ค.
์ฌ ๊ฒ์ด ์๋ค. CS๊ฐ ๋ค์ด์๊ณ hotfix๊ฐ ๋๊ฐ์ผ ํ๋ค. master branch๋ก switchํ ํ, hotfix branch๋ฅผ ๋ง๋ค์ด์ฃผ๊ณ ์ด๋ํ์. ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๋ค commitํ์ฌ C4๊ฐ ์๊ฒผ๋ค.
์ด์ hotfix branch๋ฅผ master์ ๋ฐ์ํด์ผ ํ๋ค. merge๋ฅผ ํ์ฌ ๋ฐ์ํด์ฃผ์.
๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ฒ๋๋ฉด Fast-forward
๋ผ๋ ๋ฌธ๊ตฌ๊ฐ ์ถ๋ ฅ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
๋ด๋ถ์ ์ผ๋ก git์ merge์ branch์ base commit์ด ๋ฌด์์ธ์ง ํ์ธํ๋ค. ์ด ๊ฒฝ์ฐ, master์ hotfix์ ancester๊ฐ C2๋ก ๊ฐ๊ณ , master์ ๊ฐ์ฅ ์ต์ ์ปค๋ฐ์ด hotfix์ ์์ ์ปค๋ฐ๊ณผ ๊ฐ์ ๊ฒฝ์ฐ ๊ทธ๋ฅ branch pointer๋ฅผ hotfix branch์ ์ต์ ์ปค๋ฐ์ผ๋ก ์ด๋๋ง ํ๋ฉด ๋๋ค. ์ด๋ฐ ๊ฒ์ fast-forward
๋ผ ํ๋ค.
์ด์ hotfix๋ฅผ ๋ง์ณค์ผ๋, hotfix branch๋ฅผ ์ง์ฐ๊ณ issue branch๋ก ๋์๊ฐ ์์ ์ ์ด์ด๊ฐ์. issue branch์์ ์๋ก์ด ์ปค๋ฐ์ธ C5๋ฅผ ์์ฑํ๋ค.
์ด์ issue branch๋ฅผ master์ ๋ฐ์ํด ์ค ์ฐจ๋ก์ด๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก ancester commit์ ์ฐพ๋๋ค. ์ด ๊ฒฝ์ฐ, ์ผ๋จ master branch์ ์๋ C4๊ฐ ๊ฐ์ฅ ์ต์ ์ปค๋ฐ์ผ๋ก branch pointer๋ฅผ ๊ทธ๋ฅ ์ฎ๊ธฐ๋ ๊ฒ์ผ๋ก๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค. ์ฆ, fast-forward๋ฅผ ์ฌ์ฉํ ์ ์๋ค. ์ด ๊ฒฝ์ฐ git์ 3-way merge ๋ฐฉ์์ ์ฌ์ฉํ๋ค. ์์ธํ ๋ด์ฉ์ ๋ค์ ํฌ์คํ ์์ ๋ค๋ฃจ๊ธฐ๋ก ํ์. ๊ฐ๋จํ๊ฒ ๋งํ๋ฉด, A branch์ ๊ฐ์ฅ ์ต์ commit, B branch์ ๊ฐ์ฅ ์ต์ commit๊ณผ ancester commit ์ธ๊ฐ๋ฅผ ๊ฐ์ง๊ณ ํฉ์น commit์ ๋ง๋ค์ด ๋ฐ์ํ๋ ๋ฐฉ์์ด๋ค.
์ด๋ ๊ฒ merge๋ฅผ ๋ง์น๊ณ ๋๋ฉด master์๋ ํฉ์ณ์ง commit์ด ๋ฐ์๋๊ณ ์๋ก์ด commit C6๊ฐ ๋ง๋ค์ด์ง๋ค. ๋ณดํต Merge ~
๋ก ์์ํ๋ commit์ ์ ์ฒด๊ฐ ์ด๋
์์ด๋ค.