๋ชจ๋ ํฌ์คํ
์ ๊ตฌ๋ฆ์๋ ๊ฐ์ข ์ค "Git์ผ๋ก ์์ํ๋ ํ์
๋ฐ ์คํ์์ค ํ๋ก์ ํธ" ์ ๋ด์ฉ์ ๋ด๊ณ ์์ผ๋ฉฐ
์ถ์ฒ๋ ์๋์ ์ฃผ์๋ก "๋๋๋น"๋์ ์๋ฃ์
๋๋ค.
์์
์ ์ธ ์๋๊ฐ ์๋ ๊ณต๋ถํ ๊ฒ์ ์ ๋ฆฌํด๋๋ ๋ชฉ์ ์ผ๋ก ํฌ์คํ
ํ ๊ฒ์
๋๋ค.
edu.goorm.io/learn/lecture/11528/git์ผ๋ก-์์ํ๋-ํ์
-๋ฐ-์คํ์์ค-ํ๋ก์ ํธ/info
# 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๋ ์ ๋ง ๋ค์ํ ์ต์
๊ณผ ๊ธฐ๋ฅ์ด ์๊ธฐ ๋๋ฌธ์ ๋ฐ๋ก ๊ณต๋ถํด๋ณผ ํ์๊ฐ ์๋ ๋ช
๋ น์ด์ด๋ค.