[Source Tree + Github] ๋ธ๋์น ๋ง๋ค๊ธฐ, Merge ํ๊ธฐ
ํ๋ก์ ํธ๋ฅผ ์งํํ๋ค๋ณด๋ฉด ๋ธ๋์น๋ฅผ ํ๊ณ , ์ดํ ๋ค์ ํฉ์น๋ ๊ฒฝ์ฐ๊ฐ ๊ต์ฅํ ๋ง๋ค. ์์คํธ๋ฆฌ๋ฅผ ํตํด ์ด ์์ ๋ค์ ๊ฐํธํ๊ฒ ํ ์ ์๋ค.
์ฐ์ ํ๋ก์ ํธ๋ฅผ ํ ๋๋ ๋ณดํต ๋ธ๋์น๋ฅผ ๋ง๋ค์ด ์์ ์ ํ๋ค. ์๋ฅผ๋ค๋ฉด A,B,C,D ํ์ผ์ด ์๋ค๊ณ ๊ฐ์ ํด๋ณด์. a๋ Aํ์ผ์ ๊ฑด๋๋ฆฌ๋ฉฐ "๋ก๊ทธ์ธ" ๊ธฐ๋ฅ์ ์ถ๊ฐํ ๊ฒ์ด๊ณ , b๋ Bํ์ผ์ ๊ฑด๋๋ฆฌ๋ฉฐ "ํ์๊ฐ์ " ๊ธฐ๋ฅ์ ๋ง๋ค ๊ฒ์ด๋ค. ๊ทธ๋ฆฌ๊ณ a์ b๋ ๊ณตํต์ ์ผ๋ก Cํ์ผ์ ๊ฑด๋๋ ค์ผ ํ๋ค. ๊ทธ๋ ๋ค๋ฉด ๋ฌด์จ ์ผ์ด ๋ฐ์ํ ๊น?
a์ b๋ ๋ฌผ๋ก ์์ ์ ๋ก์ปฌ ์ปดํจํฐ์์ ์์ ํ ๋ด์ฉ์ ๊นํ๋ธ์ ๋์์์ด pushํ ๊ฒ์ด๋ค. A,Bํ์ผ์ ๋ํด์๋ ์๋ก ์์ ํ ๋ด์ฉ์ด ๊ฒน์น์ง ์์ผ๋ ์ถฉ๋์ด ๋์ง ์์ง๋ง Cํ์ผ์ ๋ํด์๋ ๋์์์ด ์ถฉ๋์ด ๋ฐ์ํ ๊ฒ์ด๋ค. ์ด๊ฒ์ ์์ ์ ํ๋๋ฐ ํฐ ๋ฐฉํด๊ฐ ๋ ๊ฒ์ด๋ค. ๊ทธ๋์ ์ฌ๋๋ค์ ํ์ ์ ๋ธ๋์น๋ฅผ ์๋ก ํ์ ์์ ์ ํ ๋ค, ์๋ ๋ธ๋์น์ ๋ณํฉ์ ํ๋ค. ์์ ๊ฒฝ์ฐ์๋ ์๋์ ๊ฐ์ด ์์ ํ ๊ฒ์ด๋ค.
์ดํ ์์ ์ ๋๋ธ ๋ค(a๋ ๋ก๊ทธ์ธ ๊ธฐ๋ฅ, b๋ ํ์๊ฐ์ ๊ธฐ๋ฅ ๊ตฌํ์ ์๋ฃํ ์ํ) a์ b๋ ์์ ์ ๋ธ๋์น๋ค์ main๋ธ๋์น์ mergeํ ๊ฒ์ด๋ค. ์ด๋ a, b ์์ผ๋ก mergeํ๋ค๋ฉด a๊ฐ mergeํ ๋๋ ์ถฉ๋์ด ๋์ง ์์ง๋ง b๊ฐ mergeํ ๋๋ cํ์ผ ๋๋ฌธ์ ์ถฉ๋์ด ๋ ๊ฒ์ด๋ค. ์ฆ ์ถฉ๋์ ํ๋ฒ๋ง ๋ฐ์ํ๋ ๊ฒ์ด๋ค. ๊ฐ์ ๋ธ๋์น์์ ์์ ํ๋ค๋ฉด ์ปค๋ฐํ ๋ ๋ง๋ค ์ถฉ๋์ด ๋ ํ ๋ ์ถฉ๋์ ์๊ฐ ํจ์ฌ ์ค์ด๋ ๋ค. ๊ทธ๋์ ๋ณดํต ํ์ ์ ํ๋ฉด ๊ธฐ๋ฅ๋ณ๋ก ๋ธ๋์น๋ฅผ ํ์ ๊ฐ๋ฐ์ ํ ๋ค ํฉ์น๋ ์์ผ๋ก ์์ ์ ํ๋ค.
์ด์ ์์คํธ๋ฆฌ๋ฅผ ์ด์ฉํด์ ์๋ก์ด ๋ธ๋์น๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ์์๋ณด์. ์์คํธ๋ฆฌ๋ฅผ ์ด๊ณ ๋ณต์ฌํ ๋ธ๋์น์ ์ฒดํฌ์์ํ ๋ค ๊น ํ๋ก์ฐ ๋ฒํผ์ ๋๋ฅธ๋ค.
+์ถ๊ฐ)
๋ง์ผ ์ฒ์ ๊น ํ๋ก์ฐ ๋ฒํผ์ ๋๋ฅธ๋ค๋ฉด ์๋์ ๊ฐ์ ์ฐฝ์ด ๋ฐ ์ ์๋ค. ๊ทธ๋ผ ๊ทธ๋ฅ ํ์ธ์ ๋๋ฌ์ฃผ๋ฉด ๋๋ค. ์๋ ์ฌ์ง์ ๋ณด๋ฉด ์ ๊ธฐ๋ฅ ์์์ ๋๋ฅด๊ณ ๋ธ๋์น๋ฅผ ๋ง๋ค์์ ๋ ์ ๋์ด๋ก feature/์ด ๋ถ๋ ๊ฒ์ ๋ณผ ์ ์๋ค. ์ด๋ฌํ ์ ๋์ด๋ฅผ ์ค์ ํ๋ ์ฐฝ์ด๋ค.
๊ทธ๋ผ ์๋์ ๊ฐ์ ๋ฒํผ์ด ๋์จ๋ค. ์ ๊ธฐ๋ฅ ์์์ ๋๋ฅด๊ณ ๊ธฐ๋ฅ๋ช ์ ๋ง๋ค๊ณ ์ ํ๋ ๋ธ๋์น ๋ช ์ ์์ฑํ๊ณ ํ์ธ์ ๋๋ฅด๋ฉด ๋๋ค.
์ด์ ์ด ๋ธ๋์น์์ ์์ ์ ํ๋ฉด ๋๋ค.
์์ ์ ์๋ฃํ ๋ค์๋ ํฉ์น๋ ์์ ์ ํด์ผํ๋ค. login๋ธ๋์น์์ ์์ ํ ๋ด์ฉ์ main ๋ธ๋์น์ ๋ฐ์ํ๋ ์์ ์ ํ๋ ๊ฒ์ด๋ค. ์ค์ต์ ์ํด ๋ฏธ๋ฆฌ f1,f2.txt ํ์ผ์ด ์๋ ๋ ํฌ์งํ ๋ฆฌ์ login,signUp๋ธ๋์น๋ฅผ ๋ง๋ค์ด๋๋ค. Merge๋ฅผ ํ๋ ค๋ฉด ํด๋น ๋ ํฌ์งํ ๋ฆฌ์ ๊ฐ์ pull request๋ฅผ ๋๋ฌ์ผ ํ๋ค. ๊ทธ๋ฆฌ๊ณ New pull request ๋ฒํผ์ ๋๋ฅด๋๋ก ํ์.
๊ทธ๋ฆฌ๊ณ ์ด๋ค ๋ธ๋์น์ ์ด๋ค ๋ธ๋์น๋ฅผ ๋ณํฉํ ๊ฒ์ธ์ง ์ค์ ์ ํด์ฃผ๋ฉด ์ถฉ๋์ฌ๋ถ๋ฅผ ์๋ ค์ค๋ค. ์๋์ ์ฌ์ง์์๋ develop ๋ธ๋์น์ feature/login ๋ธ๋์น๋ฅผ ๋ณํฉ์ํค๋ ์์ ์ ํ๊ณ ์๋ค. ์๋ฃ ํ Create pull request๋ฅผ ๋๋ฅด์.
๋ง์ผ ํ์ ์ค์ด๋ผ๋ฉด ๋๋ฃ๊ฐ Files changed ๋ฒํผ์ ๋๋ฌ ์ด๋ค ํ์ผ์ ์ด๋ค ๋ถ๋ถ์ด ์์ ๋์๋์ง ํ์ธํ ์ ์๋ค. ํ์ ์ค์ด๋ผ๋ฉด ํ์ธํ๋ค๋ ๋๋ฃ์ ์ฝ๋ฉํธ๋ฅผ ๋ชจ๋ ๋ฐ์ ๋ค Merge pull request ๋ฒํผ์ ๋๋ฅด๋๋ก ํ์. ์ด ๋ฒํผ์ ๋๋ฅด๋ฉด Merge์์ ์ด ์๋ฃ๋๋ค.
Merge์์ ์ ์๋ฃํ ๋ค ์๋ ์ฌ์ง๊ณผ ๊ฐ์ ํ๋ฉด์ด ๋์ค๋๋ฐ Delete branch๋ฅผ ๋๋ฌ ์ด๋ฏธ ๋ฐ์ํ ๋ธ๋์น(login๋ธ๋์น)์ ์ญ์ ์ฌ๋ถ๋ฅผ ์ ํํ ์ ์๋ค.
์ด์ ๋๊ฐ์ด signUp๋ธ๋์น๋ฅผ develop ๋ธ๋์น์ ๋ณํฉ์์ผ๋ณด์. ์์ ๊ณผ์ ์ ๋๊ฐ์ด ๋ฐ์ผ๋ฉด ์ด๋ฒ์๋ ์ถฉ๋์ด ๋ฐ์ํ ๊ฒ์ด๋ค.
์ ํ๋ฉด์์ Resolve conflicts๋ฅผ ๋๋ฌ ์ถฉ๋์ ํด๊ฒฐํ ๋ค ๋ณํฉ ์์ ์ ํ ์ ์๋ค. ๋ฒํผ์ ๋๋ฅด๋ฉด ์๋์ ๊ฐ์ ํ๋ฉด์ด ๋์ฌ ๊ฒ์ด๋ค.
์ฌ๊ธฐ์ ์ฃผ๋ชฉํ ๋ถ๋ถ์ <<<<๋ถ๋ถ๋ถํฐ >>>>๋ถ๋ถ์ด๋ค. ์์ ์ฌ์ง์ feature/signUp ๋ธ๋์น์๋ ddddd๋ผ๊ณ ์จ์๋๋ฐ develop ๋ธ๋์น์๋ ccccc๋ผ๊ณ ์ฐ์ฌ์๋ค. ๋ผ๋ ๋ป์ด๋ค. ์ด ๋ถ๋ถ์ ์ด๋ป๊ฒ ๋ฐ์ํ ์ง ๊ฒฐ์ ํด์ ํ์ผ์ ์์ ํด์ฃผ๋ฉด ๋๋ค. ๋๋ ์ ๋ถ๋ถ์ signUp๋ธ๋์น๋ฅผ ๋ฐ์ํ์ฌ ddddd๋ก ๋ฐ๊พธ๋ ค ํ๋ค.
์ด๋ ๊ฒ ์ถฉ๋์ด ์ผ์ด๋๋ ๋ถ๋ถ์ ํด๊ฒฐํ๊ณ <<<<์ ๊ฐ์ ๊ธฐํธ๋ค์ ์น ์ง์ฐ๊ณ ์ฐ์ธก ์๋จ Mark as resolved ๋ฒํผ์ ๋๋ฅด๋ฉด ๋๋ค. ๊ทธ๋ผ ์์ commit as merge ๋ฒํผ์ด ์๊ธฐ๋๋ฐ ์ด๊ฒ๋ ๋๋ฅด๋๋ก ํ์. ์ด๋ฒ ๋ณํฉ์ ๊ฒฝ์ฐ์๋ ํ์ผ์ด ๋ณ๋ก ์์ด ์ถฉ๋์ด ํ๋๋ฐ์ ์์ง๋ง ์ฌ๋ฌ๊ฐ๊ฐ ์๋ค๋ฉด ์์ ๊ฐ์ด ์ฐจ๊ทผ์ฐจ๊ทผ ํด๊ฒฐํ๋ฉด ๋๋ค. ์๋ฌดํผ ๋ฒํผ์ ๋๋ฅด๋ฉด ์๋์ ๊ฐ์ ์ฐฝ์ด ๋์จ๋ค.
์์์ ํ ๊ฒ๊ณผ ๊ฐ์ด ๋ณํฉ๊ณผ์ ์ ๋ง๋ฌด๋ฆฌ ํด์ฃผ๋ฉด ๋๋ค.
์์คํธ๋ฆฌ์์๋ signUp๋ธ๋์น์ login๋ธ๋์น๊ฐ develop๋ธ๋์น์์ ๋ป์ด๋์๋ค๊ฐ ๋ค์ ๋ณํฉ๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.