๊ธ€ ์ž‘์„ฑ์ž: ๊ฐœ๋ฐœํ•˜๋Š” ํ›ˆ์ด

๊นƒ/๊นƒํ—ˆ๋ธŒ๋Š” ์ง„์งœ ์–ด๋ ต๋‹ค.

์ œ๊ณง๋‚ด. ๊นƒ์€ ์•Œ๋‹ค๊ฐ€๋„ ๋ชจ๋ฅด๊ฒ ๋‹ค. ์ด์ •๋„๋ฉด ๊นƒ๊ณผ ๊นƒํ—ˆ๋ธŒ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์˜จ๊ฐ–์—๋Ÿฌ๋Š” ๋‹ค ๊ฒช์–ด๋ดค๋‹ค๊ณ  ์ž๋ถ€ํ–ˆ๋Š”๋ฐ, ์˜ค๋Š˜์€ ๋˜ ์‹ ์„ ํ•œ ์—๋Ÿฌ๋ฅผ ๋งž์ดํ–ˆ๋‹ค. ํฌํฌํ–ˆ๋˜ ์›๋ณธ ์ €์žฅ์†Œ๊ฐ€ ์—…๋ฐ์ดํŠธ ๋˜์—ˆ๊ณ , ๋‚ด๊ฐ€ ํฌํฌํ•œ ์ €์žฅ์†Œ์— ์ƒˆ๋กœ์šด ์ปค๋ฐ‹์„ ๋งŒ๋“  ์ฑ„๋กœ pull request ๋ฅผ ๋ณด๋‚ด๊ฒŒ ๋˜๋Š” ์ƒํ™ฉ์ด๋‹ค.

 

๊ฒฐ๊ตญ ๋ฌธ์ œ๋Š” ๋‚ด ์ปค๋ฐ‹๊ณผ ์›๋ณธ ์ €์žฅ์†Œ์˜ ์ปค๋ฐ‹์„ ์–ด๋–ป๊ฒŒ ํ•ฉ์น  ๊ฒƒ์ธ๊ฐ€์ธ๋ฐ, ๋ณดํ†ต ํฌํฌํ•œ ์›๋ณธ ์ €์žฅ์†Œ์— ๋Œ€ํ•œ ๊ถŒํ•œ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ๋Š” ๋“œ๋ฌผ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์Œ ๋ฐฉ๋ฒ•์ด ์ตœ์„ ์ธ ๊ฒƒ ๊ฐ™๋‹ค.

๋‚ด ์ €์žฅ์†Œ๋ฅผ ๋™๊ธฐํ™” ์‹œํ‚ค๊ณ  ๊ทธ ์œ„์— ๋‚ด ์ปค๋ฐ‹์„ ์Œ“์ž.

๋จผ์ € ์›๋ณธ ์ €์žฅ์†Œ์˜ ์ตœ์‹  ์ƒํƒœ๋ฅผ ๊ฐ€์ ธ์™€์•ผ ํ•œ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด upstream์„ fetch ํ•˜์ž.

git fetch upstream

 

fetch๋ฅผ ํ•˜๋ฉด upstream/๋ธŒ๋žœ์น˜์ด๋ฆ„์œผ๋กœ ์ˆจ๊ฒจ์ง„ ๋ธŒ๋žœ์น˜๊ฐ€ ํ•˜๋‚˜ ์ƒ๊ธด๋‹ค. ์ด์ œ ๋‘ ๊ฐ€์ง€ ์„ ํƒ์ง€๊ฐ€ ์žˆ๋‹ค.

  1. ์ด ๋ธŒ๋žœ์น˜๋ฅผ ํ˜„์žฌ ๋ธŒ๋žœ์น˜์— ๋จธ์ง€ํ•ด์„œ ๊นƒํ—ˆ๋ธŒ์— ํ‘ธ์‰ฌ ํ•œ๋‹ค.
  2. ์ด ๋ธŒ๋žœ์น˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊นƒํ—ˆ๋ธŒ์— ๊ฐ•์ œ๋กœ ํ‘ธ์‰ฌํ•œ๋‹ค. (์ด ๋ฐฉ๋ฒ•์„ ์“ฐ๋ฉด ์ปค๋ฐ‹๋“ค์ด ๋‹ค ๋‚ ์•„๊ฐ„๋‹ค)

๋‚˜๋Š” ๋ณ„๋„์˜ ๋ธŒ๋žœ์น˜๋ฅผ ๋งŒ๋“ค์–ด์„œ ์ž‘์—…์„ ํ•˜๊ณ  ์‹ค์ œ๋กœ PR์„ ๋ณด๋‚ผ ๋ธŒ๋žœ์น˜๋Š” ๋”ฐ๋กœ ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ผ๋‹จ PR์„ ๋ณด๋‚ผ ๋ธŒ๋žœ์น˜๋ฅผ ๊ฐ•์ œ๋กœ ๋™๊ธฐํ™” ํ•ด์ฃผ๊ณ , ๊ทธ ์œ„์— ์ž‘์—… ๋ธŒ๋žœ์น˜์— ์žˆ๋˜ ์ปค๋ฐ‹๋“ค์„ ๋‹ค์‹œ ์Œ“์•„์ฃผ๊ธฐ๋กœ ํ–ˆ๋‹ค.

 

๊ทธ๋Ÿผ ์ด์ œ upstream ๋ธŒ๋žœ์น˜์™€ ๋‚ด ๊นƒํ—ˆ๋ธŒ์˜ ํŠน์ • ๋ธŒ๋žœ์น˜๋ฅผ ๊ฐ•์ œ๋กœ ๋™๊ธฐํ™”๋ฅผ ์‹œ์ผœ๋ณด์ž.

  • ๋จผ์ € ๋ฆฌ๋ชจํŠธ์™€ ๋™๊ธฐํ™”๋œ ๋ธŒ๋žœ์น˜๋ฅผ ์„ ํƒํ•˜๊ณ  Reset์„ ํ•œ๋‹ค. ์ปค๋ฐ‹๊ณผ ํŒŒ์ผ์˜ ์ˆ˜์ •๋‚ด์—ญ์ด ๋‹ค ์—†์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ์‹ ์ค‘ํ•˜๊ฒŒ ํ•ด์•ผ๋œ๋‹ค.
git reset --hard upstream/๋ฆฌ๋ชจํŠธ๋ธŒ๋žœ์น˜์ด๋ฆ„
  • ๊ฐ•์ œ๋กœ ๋ฆฌ๋ชจํŠธ์— ํ‘ธ์‰ฌํ•œ๋‹ค. ๊ฐ•์ œ๋กœ ํ•˜๋Š” ์ด์œ ๋Š” ์ด๋ฏธ ๋ฆฌ๋ชจํŠธ์— ์ €์žฅ๋œ ์ปค๋ฐ‹๋“ค์€ resetํ•œ ๋‚ด ๋กœ์ปฌ ์ €์žฅ์†Œ ์ดํ›„์˜ ์ปค๋ฐ‹๋“ค์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— pull์„ ์•ˆํ•˜๋ฉด ํ‘ธ์‰ฌํ•  ์ˆ˜ ์—†๋‹ค. ๊ทธ๋ž˜์„œ ๊ฐ•์ œ๋กœ ๋กœ์ปฌ๊ณผ ๋ฆฌ๋ชจํŠธ๋ฅผ ๋™๊ธฐํ™” ์‹œ์ผœ์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.
git push origin ๋™๊ธฐํ™”ํ• ๋ธŒ๋žœ์น˜์ด๋ฆ„ --force
  • ์ด์ œ ๋‚ด๊ฐ€ ์„ ํƒํ•œ ๋ธŒ๋žœ์น˜๋Š” ๊นƒํ—ˆ๋ธŒ์™€ ๋กœ์ปฌ์— ๋ชจ๋‘ ์›๋ณธ ์ €์žฅ์†Œ์˜ ๋‚ด์šฉ๊ณผ ๋™์ผํ•˜๊ฒŒ ๋™๊ธฐํ™” ๋˜์–ด์žˆ๋‹ค.
  • ์ž‘์—… ๋ธŒ๋žœ์น˜์˜ ๋‚ด์šฉ์„ ๋™๊ธฐํ™”ํ•œ ๋ธŒ๋žœ์น˜์— ๋จธ์ง€ํ•œ๋‹ค. ์ด๋•Œ Conflict ๊ฐ€ ์ƒ๊ธธ ๊ฐ€๋Šฅ์„ฑ์ด ๋‹ค๋ถ„ํ•œ๋ฐ, ์–ด์ฐจํ”ผ ๋‚จ๊ธธ ๋ฒ„์ „์€ ๋‚ด๊ฐ€ ๋จธ์ง€ํ•˜๋ ค๋Š” ์ž‘์—… ๋ธŒ๋žœ์น˜์˜ ์ž‘์—…๋‚ด์šฉ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ž‘์—… ๋ธŒ๋žœ์น˜์˜ ๋‚ด์šฉ๋งŒ accept ํ•˜๋ฉด๋œ๋‹ค. 
  • conflict ํ•ด๊ฒฐํ•˜๊ณ  ๋จธ์ง€๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ํ•ด๋‹น ๋ธŒ๋žœ์น˜๋ฅผ ์›๋ณธ ์ €์žฅ์†Œ๋กœ PRํ•˜๋ฉด ๋œ๋‹ค. 

๊นƒํ—ˆ๋ธŒ์™€ ๊นƒ์ด ํ•œ๋ฒˆ ๊ผฌ์ผ ๋•Œ๋งˆ๋‹ค ์‹์€ ๋•€์ด ๋‚œ๋‹ค.. ์ œ๋ฐœ ๋‹ค์Œ๋ถ€ํ„ฐ๋Š” ์ด๋Ÿด ์ผ ์—†๊ฒŒ upstream์„ fetch ํ•˜๊ณ ๋‚˜์„œ ์ž‘์—…์„ ์‹œ์ž‘ํ•˜์ž..