WEB/Server

[Source Tree + Github] ๋ธŒ๋žœ์น˜ ๋งŒ๋“ค๊ธฐ, Merge ํ•˜๊ธฐ

kite707 2022. 1. 28.

ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋‹ค๋ณด๋ฉด ๋ธŒ๋žœ์น˜๋ฅผ ํŒŒ๊ณ , ์ดํ›„ ๋‹ค์‹œ ํ•ฉ์น˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๊ต‰์žฅํžˆ ๋งŽ๋‹ค. ์†Œ์ŠคํŠธ๋ฆฌ๋ฅผ ํ†ตํ•ด ์ด ์ž‘์—…๋“ค์„ ๊ฐ„ํŽธํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์šฐ์„  ํ”„๋กœ์ ํŠธ๋ฅผ ํ•  ๋•Œ๋Š” ๋ณดํ†ต ๋ธŒ๋žœ์น˜๋ฅผ ๋งŒ๋“ค์–ด ์ž‘์—…์„ ํ•œ๋‹ค. ์˜ˆ๋ฅผ๋“ค๋ฉด A,B,C,D ํŒŒ์ผ์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž. a๋Š” AํŒŒ์ผ์„ ๊ฑด๋“œ๋ฆฌ๋ฉฐ "๋กœ๊ทธ์ธ" ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•  ๊ฒƒ์ด๊ณ , b๋Š” BํŒŒ์ผ์„ ๊ฑด๋“œ๋ฆฌ๋ฉฐ "ํšŒ์›๊ฐ€์ž…" ๊ธฐ๋Šฅ์„ ๋งŒ๋“ค ๊ฒƒ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  a์™€ b๋Š” ๊ณตํ†ต์ ์œผ๋กœ CํŒŒ์ผ์„ ๊ฑด๋“œ๋ ค์•ผ ํ•œ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๋ฌด์Šจ ์ผ์ด ๋ฐœ์ƒํ• ๊นŒ?

a์™€ b๋Š” ๋ฌผ๋ก  ์ž์‹ ์˜ ๋กœ์ปฌ ์ปดํ“จํ„ฐ์—์„œ ์ž‘์—…ํ•œ ๋‚ด์šฉ์„ ๊นƒํ—ˆ๋ธŒ์— ๋Š์ž„์—†์ด pushํ•  ๊ฒƒ์ด๋‹ค. A,BํŒŒ์ผ์— ๋Œ€ํ•ด์„œ๋Š” ์„œ๋กœ ์ž‘์—…ํ•œ ๋‚ด์šฉ์ด ๊ฒน์น˜์ง€ ์•Š์œผ๋‹ˆ ์ถฉ๋Œ์ด ๋‚˜์ง€ ์•Š์ง€๋งŒ CํŒŒ์ผ์— ๋Œ€ํ•ด์„œ๋Š” ๋Š์ž„์—†์ด ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•  ๊ฒƒ์ด๋‹ค. ์ด๊ฒƒ์€ ์ž‘์—…์„ ํ•˜๋Š”๋ฐ ํฐ ๋ฐฉํ•ด๊ฐ€ ๋  ๊ฒƒ์ด๋‹ค. ๊ทธ๋ž˜์„œ ์‚ฌ๋žŒ๋“ค์€ ํ˜‘์—…์‹œ ๋ธŒ๋žœ์น˜๋ฅผ ์ƒˆ๋กœ ํŒŒ์„œ ์ž‘์—…์„ ํ•œ ๋’ค, ์›๋ž˜ ๋ธŒ๋žœ์น˜์— ๋ณ‘ํ•ฉ์„ ํ•œ๋‹ค. ์œ„์˜ ๊ฒฝ์šฐ์—๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์ž‘์—…ํ•  ๊ฒƒ์ด๋‹ค. 

a์™€ b๋Š” ๊ฐ๊ฐ main ๋ธŒ๋žœ์น˜๋ฅผ ๋ณต์‚ฌํ•ด ์ƒˆ๋กœ์šด ๋ธŒ๋žœ์น˜๋ฅผ ๋งŒ๋“  ํ›„ ๊ทธ๊ณณ์—์„œ ์ž‘์—…ํ•œ๋‹ค.

 

์ดํ›„ ์ž‘์—…์„ ๋๋‚ธ ๋’ค(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์ž‘์—…์ด ์™„๋ฃŒ๋œ๋‹ค.

๊ฐ ๋ถ€๋ถ„์— ์•Œ๋งž๊ฒŒ ๋ฉ”์‹œ์ง€๋ฅผ ์ž‘์„ฑํ•˜๊ณ  Confirm 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๋ธŒ๋žœ์น˜์—์„œ ๋ป—์–ด๋‚˜์™”๋‹ค๊ฐ€ ๋‹ค์‹œ ๋ณ‘ํ•ฉ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

๋Œ“๊ธ€