๋ฐ์ํ
rebase
Git์์ ๋ธ๋์น์ ๊ธฐ๋ก์ ๋ค๋ฅธ ๋ธ๋์น๋ก ์ด๋์ํค๊ฑฐ๋ ๋ณํฉํ๋ ๊ณผ์
ํ์คํ ๋ฆฌ๋ฅผ ๊น๋ํ๊ฒ ์ ์งํ๊ฑฐ๋ ๋ค๋ฅธ ๋ธ๋์น์ ๋ณ๊ฒฝ์ฌํญ์ ํจ๊ณผ์ ์ผ๋ก ํตํฉํ ๋ ์ฌ์ฉ
์์
ํ์ฌ ๋ธ๋์น๊ฐ feature-branch์ด๊ณ , main์ ํตํฉํ ๊ฒฝ์ฐ
git checkout main
git pull origin main # main ๋ธ๋์น๋ฅผ ์ต์ ์ผ๋ก ์
๋ฐ์ดํธํฉ๋๋ค.
git rebase feature-branch
squash
์ฌ๋ฌ ๊ฐ์ ์ฐ์์ ์ธ ์ปค๋ฐ์ ํ๋์ ์ปค๋ฐ์ผ๋ก ํฉ์น๋ ๊ฒ
์ฃผ๋ก ์ฌ๋ฌ๋ฒ์ ์ปค๋ฐ์ ํ๋๋ก ๋ฌถ์ ๋ ์ฌ์ฉ
์์
ํ์ฌ ๋ธ๋์น์ 3๊ฐ์ ์ฐ์ ์ปค๋ฐ์ด ์์ ๊ฒฝ์ฐ
commit A: Implement feature part 1
commit B: Implement feature part 2
commit C: Fix bug related to the feature
์ด 3๊ฐ์ ์ปค๋ฐ์ ํ๋์ ์ปค๋ฐ์ผ๋ก ํฉ์น๋ ค๋ฉด git rebase -i ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉ
git rebase -i HEAD~3
์ด ๋ช ๋ น์ด๋ฅผ ์คํํ๋ฉด ํ ์คํธ ์๋ํฐ๊ฐ ์ด๋ฆฌ๊ณ ์๋์ ๊ฐ์ ์ฐฝ์ด ๋ํ๋จ
pick A Implement feature part 1
pick B Implement feature part 2
pick C Fix bug related to the feature
์ฌ๊ธฐ์ pick์ squash๋ก ๋ณ๊ฒฝํ๊ณ ์ ์ฅํ๋ฉด 2๋ฒ, 3๋ฒ์งธ ์ปค๋ฐ์ด 1๋ฒ์งธ ์ปค๋ฐ์ ํฉ์ณ์ง
conflict๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ๋ก์ปฌ์์ conflict๋ฅผ ํด๊ฒฐํ๊ณ addํ ๋ค์ git rebase --continue ๋ช ๋ น์ด๋ก ์งํํ๋ฉด ์ปค๋ฐ์ด ํฉ์ณ์ง
๋ฐ์ํ
'๐ฑGit' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
rebase์ conflict ํด๊ฒฐํ๊ธฐ (0) | 2024.04.24 |
---|---|
ํน์ ์์ ์ ์ปค๋ฐ๋ก๊ทธ ๊ฐ์ ธ์ค๊ธฐ (0) | 2024.03.06 |
.gitignore ์ ์ฉํ๊ธฐ (0) | 2023.04.24 |