์ƒˆ์†Œ์‹

IT & Security/Git & GitHub

Git Rebase ๋ช…๋ น์œผ๋กœ ํŠน์ •ํ•œ ์ปค๋ฐ‹ ์ˆ˜์ •&์‚ญ์ œ | Git Rebase

  • -
๋ฐ˜์‘ํ˜•

๋ชจ๋“  ํฌ์ŠคํŒ…์€ ๊ตฌ๋ฆ„์—๋“€ ๊ฐ•์ขŒ ์ค‘ "Git์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ํ˜‘์—… ๋ฐ ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ" ์˜ ๋‚ด์šฉ์„ ๋‹ด๊ณ  ์žˆ์œผ๋ฉฐ

์ถœ์ฒ˜๋Š” ์•„๋ž˜์˜ ์ฃผ์†Œ๋กœ "๋‚˜๋™๋นˆ"๋‹˜์˜ ์ž๋ฃŒ์ž…๋‹ˆ๋‹ค. 

์ƒ์—…์ ์ธ ์˜๋„๊ฐ€ ์•„๋‹Œ ๊ณต๋ถ€ํ•œ ๊ฒƒ์„ ์ •๋ฆฌํ•ด๋†“๋Š” ๋ชฉ์ ์œผ๋กœ ํฌ์ŠคํŒ… ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

edu.goorm.io/learn/lecture/11528/git์œผ๋กœ-์‹œ์ž‘ํ•˜๋Š”-ํ˜‘์—…-๋ฐ-์˜คํ”ˆ์†Œ์Šค-ํ”„๋กœ์ ํŠธ/info

 

๊ตฌ๋ฆ„EDU - ๋ชจ๋‘๋ฅผ ์œ„ํ•œ ๋งž์ถคํ˜• IT๊ต์œก

๊ตฌ๋ฆ„EDU๋Š” ๋ชจ๋‘๋ฅผ ์œ„ํ•œ ๋งž์ถคํ˜• IT๊ต์œก ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. ๊ฐœ์ธ/ํ•™๊ต/๊ธฐ์—… ๋ฐ ๊ธฐ๊ด€ ๋ณ„ ์ตœ์ ํ™”๋œ IT๊ต์œก ์†”๋ฃจ์…˜์„ ๊ฒฝํ—˜ํ•ด๋ณด์„ธ์š”. ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์‹ค๋ฌด ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ต์œก, ์ „๊ตญ ์ดˆ์ค‘๊ณ /๋Œ€ํ•™๊ต ์˜จ๋ผ์ธ ๊ฐ•์˜, ๊ธฐ์—…/

edu.goorm.io

 


# Git Rebase ๋ช…๋ น

์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€๋ฅผ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜, ํŠน์ •ํ•œ ์ปค๋ฐ‹ ์ž์ฒด๋ฅผ ์ œ๊ฑฐํ•˜๊ณ ์ž ํ•  ๋•Œ ํšจ๊ณผ์ ์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.

 

์‹ค์Šต์„ ์œ„ํ•ด ํ•˜๋‚˜์˜ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜๊ณ   git init์„ ํ†ตํ•ด ์ดˆ๊ธฐํ™” ์‹œ์ผœ์ค€๋‹ค.

๋งŒ๋“ค๊ณ  ๋‚œ ํ›„ ์•„๋ฌดํŒŒ์ผ์ด๋‚˜ ํ•˜๋‚˜ ์ƒ์„ฑํ•ด์ค€๋‹ค. ( example1.txt ์™€ ๊ฐ™์ด) ์ƒ์„ฑ ํ›„ add, commitํ•ด์ค€๋‹ค.

 

๋‹ค์Œ์œผ๋กœ txtํŒŒ์ผ์„ ์ˆ˜์ •ํ•ด์ค€ ํ›„ ๋‹ค์‹œ add commit ํ•ด์ค€๋‹ค.

๊ทธ๋‹ค์Œ ํŒŒ์ผ์„ ์ง€์šด ํ›„ add commit ํ•ด์ค€๋‹ค.

 

์ด๋ฒˆ์—” Example 2.txt ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  add commit ํ•ด์ค€๋‹ค.

 

 

์ดํ›„ ๊นƒ ๋กœ๊ทธ๋ฅผ ์ถœ๋ ฅํ•ด๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด 4๊ฐœ์˜ ์ปค๋ฐ‹ ๋กœ๊ทธ๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค.

 

์ด์ค‘์—์„œ Delete Example1.txt์˜ ์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€๋ฅผ ์ˆ˜์ •ํ•ด๋ณด๋„๋ก ํ•˜์ž

 

 

# Rebase ์‹ค์Šต

"git rebase -i HEAD~3"

i : ์ธํ„ฐ๋ ˆํ‹ฐ๋ธŒ ๋ชจ๋“œ ์–ด๋–ป๊ฒŒ ์ˆ˜์ •ํ•  ๊ฑด์ง€ ํŽธํ•˜๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

HEAD~3 : head๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ตœ๊ทผ 3๊ฐœ์˜ ๋‚ด์—ญ๋งŒ ํ™•์ธ ํ•˜๊ฒ ๋‹ค.

 

์•„๋ž˜์ชฝ์— ๋ณด๋ฉด ๋‹ค์–‘ํ•œ ๋ช…๋ น์–ด๋“ค์ด ์†Œ๊ฐœ๋˜์–ด์žˆ๋‹ค.

์ด ์ค‘ reword ์˜ต์…˜์„ ๋ณด๋ฉด, ์ปค๋ฐ‹์€ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋˜, ์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€๋งŒ ๋ฐ”๊ฟ”์ฃผ๋Š” ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

 

์ˆ˜์ •ํ•ด์ฃผ๊ณ , ์ €์žฅ์„ ํ•ด์ฃผ๋ฉด ๋ฐ”๋กœ ์–ด๋–ป๊ฒŒ ์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€๋ฅผ ๋ฐ”๊ฟ€ ๊ป€์ง€ ํ‘œ์‹œ๋œ ํŽ˜์ด์ง€๊ฐ€ ๋œฌ๋‹ค.

 

 

์—ฌ๊ธฐ์„œ ์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€๋ฅผ Delete ๊ฐ€ ์•„๋‹Œ, Drop์œผ๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค. ์ €์žฅ ํ›„ git log์— ๋“ค์–ด๊ฐ€๋ณด์ž!

๋ณ€๊ฒฝ๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋งŒ์•ฝ ํŠน์ • ์ปค๋ฐ‹์„ ๋„ฃ์–ด์ฃผ๊ณ  ์‹ถ๊ฑฐ๋‚˜ ํ˜น์€ ๋„ˆ๋ฌด head์™€ ๋–จ์–ด์ ธ์žˆ๋Š” ์ปค๋ฐ‹์„ ์ˆ˜์ •ํ•ด์•ผ ํ•œ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ?

 

rebase ๋ช…๋ น์€ ์ปค๋ฐ‹ ํ•ด์‹œ ๊ฐ’ ์ž์ฒด๋ฅผ ๋„ฃ์–ด์ฃผ์–ด๋„ ๋œ๋‹ค. ์ฆ‰ ์•„๋ž˜์™€ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

git rebase -i 824a488df15c65176559797364f575ebe51d5f98    

 

์ด๋ ‡๊ฒŒ ํ•ด์‹œ ๊ฐ’์„ ๋„ฃ๊ฒŒ ๋˜๋ฉด ๋„ฃ์€ ์ด ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ head (์ ค ์ตœ๊ทผ ์ปค๋ฐ‹ ๋œ ๊ณณ)๊นŒ์ง€ ์ถœ๋ ฅ์ด ๋œ๋‹ค.

 

 

# ํŠน์ • ์ปค๋ฐ‹ ์ž์ฒด๋ฅผ ์‚ญ์ œํ•˜๊ธฐ

git rebase -i HEAD~3

 

๋ฆฌ๋ฒ ์ด์Šค ์—๋””ํ„ฐ๋ฅผ ์—ด์–ด์ค€๋‹ค. ์˜ต์…˜ ์ค‘ drop์€ ์ปค๋ฐ‹์„ ์ง€์›Œ์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

 

์—†์• ๊ณ ์ž ํ•˜๋Š” ์ปค๋ฐ‹์„ dropํ‚ค์›Œ๋“œ๋ฅผ ๋„ฃ๊ณ  ์ €์žฅํ•ด์ค€๋‹ค.

์ดํ›„ ์ปค๋ฐ‹ ๋กœ๊ทธ๋ฅผ ์ถœ๋ ฅํ•ด๋ณด๋ฉด, ์ปค๋ฐ‹์ด ์‚ฌ๋ผ์ง„ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ปค๋ฐ‹์ด ์‚ญ์ œ๋˜์—ˆ๋‹ค๋ฉด, drop ์ปค๋ฐ‹ ์ฆ‰ ์ฒ˜์Œ ๋งŒ๋“  ํ…์ŠคํŠธ ํŒŒ์ผ์„ ์‚ญ์ œํ•œ ์ปค๋ฐ‹์ด ์‚ฌ๋ผ์ง„๊ฑธ๊นŒ?

 

ls ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ํŒŒ์ผ์„ ํ™•์ธํ•ด๋ณด์•˜๋”๋‹ˆ, Example1.txt๊ฐ€ ๋‹ค์‹œ ์ƒ๊ฒจ๋‚œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰ ์‚ญ์ œํ•œ ๋‚ด์—ญ์ด ์‚ฌ๋ผ์ง„ ๊ฒƒ์ด๋‹ค.

 

ํŠน์ • ์ปค๋ฐ‹ ์ž์ฒด๊ฐ€ ์• ์ดˆ์— ์กด์žฌํ•˜์ง€ ์•Š์•˜๋˜ ๊ฒƒ์ฒ˜๋Ÿผ ์„ฑ๊ณต์ ์œผ๋กœ ๋™์ž‘ํ•œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

git-scm.com/book/ko/v2/Git-๋ธŒ๋žœ์น˜-Rebase-ํ•˜๊ธฐ

 

Git - Rebase ํ•˜๊ธฐ

Rebase๋Š” ๊ธฐ์กด์˜ ์ปค๋ฐ‹์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋‚ด์šฉ์€ ๊ฐ™์ง€๋งŒ ๋‹ค๋ฅธ ์ปค๋ฐ‹์„ ์ƒˆ๋กœ ๋งŒ๋“ ๋‹ค. ์ƒˆ ์ปค๋ฐ‹์„ ์„œ๋ฒ„์— Push ํ•˜๊ณ  ๋™๋ฃŒ ์ค‘ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๊ทธ ์ปค๋ฐ‹์„ Pull ํ•ด์„œ ์ž‘์—…์„ ํ•œ๋‹ค๊ณ  ํ•˜์ž. ๊ทธ๋Ÿฐ๋ฐ ๊ทธ ์ปค

git-scm.com

git rebase๋Š” ์ •๋ง ๋‹ค์–‘ํ•œ ์˜ต์…˜๊ณผ ๊ธฐ๋Šฅ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋”ฐ๋กœ ๊ณต๋ถ€ํ•ด๋ณผ ํ•„์š”๊ฐ€ ์žˆ๋Š” ๋ช…๋ น์–ด์ด๋‹ค.

๋ฐ˜์‘ํ˜•
Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.