Skip to content

Latest commit

ย 

History

History
61 lines (48 loc) ยท 3.53 KB

18_rebase_i.md

File metadata and controls

61 lines (48 loc) ยท 3.53 KB

Rebase -i ์˜ต์…˜์œผ๋กœ Commit ์ˆ˜์ •ํ•˜๊ธฐ

  • rebase -i ์˜ต์…˜์„ ์ด์šฉํ•˜๋ฉด ์ด์ „์— ์ž˜๋ชปํ•œ commit์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค
  • ๊ทธ๋Ÿฌ๋‚˜ rebase -i๋กœ ์ˆ˜์ •ํ•œ commit ์ดํ›„์˜ commit์€ ๋ชจ๋‘ ์ด์ „๊ณผ ๋‹ค๋ฅธ ์ƒํƒœ๊ฐ€ ๋œ๋‹ค
  • ๋•Œ๋ฌธ์—, ์ด๋ฏธ ๊ณต๊ฐœ ์ €์žฅ์†Œ์— pushํ•œ commit์€ rebaseํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹๋‹ค

Commit message ๋ณ€๊ฒฝํ•˜๊ธฐ

  • rebase -i ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ๋•Œ์—๋Š”, ๋ฐ˜๋“œ์‹œ ์ˆ˜์ •ํ•˜๋ ค๋Š” commit ์ด์ „์˜ commit์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค
  • ์•„๋ž˜์™€ ๊ฐ™์ด .์œผ๋กœ ์ž…๋ ฅ๋œ commit message๋ฅผ ์ˆ˜์ •ํ•˜๋ ค๋ฉด, ๊ทธ ์ด์ „ commit์˜ hash code๋ฅผ ์ด์šฉํ•ด์•ผ ํ•œ๋‹ค
  • ๋ณ€๊ฒฝํ•˜๋ ค๋Š” commit์˜ pick ๋‹จ์–ด๋ฅผ r๋กœ ๋ฐ”๊ฟ” ์ฃผ๋ฉด ์ƒˆ๋กœ์šด commit message๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค



Commit ์‚ญ์ œํ•˜๊ธฐ

  • ํŠน์ • commit์„ ์‚ญ์ œํ•˜๋ ค๋ฉด ๋™์ผํ•˜๊ฒŒ git rebase -i ํ•ด์‹œ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•ด์ฃผ๊ณ , pick์„ d๋กœ ๋ณ€๊ฒฝํ•ด์ฃผ์ž



Commit ํ•ฉ์น˜๊ธฐ

  • ๋„ˆ๋ฌด ๋งŽ์€ commit์ด log์— ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉด, ๊ด€๋ฆฌ ๋ฐ ๊ฒ€์ƒ‰์ด ์šฉ์ดํ•˜์ง€ ์•Š๋‹ค
  • ์ด๋Ÿด ๋•Œ์—๋Š” ๋‘ ๊ฐ€์ง€ ์ด์ƒ์˜ commit์„ ํ•ฉ์ณ์„œ ํ•˜๋‚˜์˜ commit์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค
  • git rebase -i ํ•ด์‹œ์ฝ”๋“œ ํ›„, ํ•ฉ์น  commit์ค‘ ๊ฐ€์žฅ ์œ„์˜ commit์„ ์ œ์™ธํ•œ commit๋“ค์˜ pick์„ s๋กœ ๋ณ€๊ฒฝํ•˜์ž
  • ์ด์–ด์„œ commit message ๊นŒ์ง€ ์ž…๋ ฅํ•˜๊ณ  ์ €์žฅํ•˜๋ฉด ๋œ๋‹ค



Commit ๋ถ„๋ฆฌํ•˜๊ธฐ

  • commit ํ•˜๋‚˜์— ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๊ธฐ๋Šฅ์˜ ์ˆ˜์ •์ด ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉด, ๋‚˜์ค‘์— ๋””๋ฒ„๊น…ํ•˜๊ธฐ ๊ณค๋ž€ํ•œ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค
  • ์ด๋Ÿด ๋•Œ์—๋Š” ์šฐ์„  git rebase -i ์˜ต์…˜์—์„œ pick์„ e๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค

  • ์ดํ›„ git reset HEAD~1 ์„ ์ด์šฉํ•ด์„œ ์ˆ˜์ •์‚ฌํ•ญ๋“ค์„ ๋ชจ๋‘ working directory๋กœ ๋จผ์ € ์˜ฎ๊ธฐ์ž

  • ๊ฐ๊ฐ์˜ ์ˆ˜์ •์‚ฌํ•ญ๋งˆ๋‹ค ์ƒˆ๋กœ์šด commit์„ ๋งŒ๋“ค์–ด ์ฃผ๊ณ  log๋ฅผ ๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค
  • ์—ฌ๊ธฐ์„œ git rebase --continue๋ฅผ ํ•˜๋ฉด rebase๊ฐ€ ์™„๋ฃŒ๋œ๋‹ค



Rebase Conflict

  • ๋™์ผํ•œ ํŒŒ์ผ์˜ ์ˆ˜์ •์‚ฌํ•ญ์„ ๋‹ด๊ณ  ์žˆ๋Š” ๋‘ commit ์‚ฌ์ด์—์„œ ๋ณ€๊ฒฝ์ด ๋ฐœ์ƒํ•˜๋ฉด conflict๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค
  • ์•„๋ž˜์˜ fourth commit0 ๋Š” fourth commit๊ณผ ๋™์ผํ•œ ํŒŒ์ผ์„ ๋ณ€๊ฒฝํ•˜์˜€๋‹ค
  • git rebase -i ์˜ d ์˜ต์…˜์œผ๋กœ fourth commit0๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด conflict๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค

  • rebase ์ด์ „์œผ๋กœ ๋Œ์•„๊ฐ€๋ ค๋ฉด git rebase --abort ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•˜๋ฉด ๋œ๋‹ค
  • ๊ณ„์† rebase๋ฅผ ์ง„ํ–‰ํ•˜๋ ค๋ฉด ์ง์ ‘ ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜๊ณ  git add ํ•œ ํ›„, git rebase --continueํ•˜๋ฉด ๋œ๋‹ค