[git] rebase - f-lab-edu/jshop GitHub Wiki
rebase๋ ๋ค๋ฅธ ๋ธ๋์น์ ์ปค๋ฐ ์ํ์ค๋ฅผ ํ์ฌ ๋ธ๋์น๋ก ์ด๋ํ๋ ์์ ์ด๋ค.
์์๋ก ์์๋ณด์.
ํ์ฌ ์์ ์ค์ด ๋๊ฐ์ ๋ธ๋์น๊ฐ ์๋ค.
feature/add-test-code
: ํ ์คํธ ์ฝ๋๋ฅผ ์ถ๊ฐํ๋ ๋ธ๋์นfeature/modify-custom-userdetails
: ํ ์คํธ์ฝ๋๋ฅผ ์ถ๊ฐํ๋ค, UserDetails ์ชฝ ์ฝ๋๋ฅผ ์์ ํด์ผ ํด์ ๋ง๋ ๋ธ๋์น
feature/modify-custom-userdetails
์์ ์์
์ ๋ง์น๊ณ , ์๋ ๋ธ๋์น์ธ feature/add-test-code
๋ก PR์ ๋ฃ์๋ค.
๊ทธ๋ฆฌ๊ณ ๋จธ์ง ์ง์ ์ ํ
์คํธ ์ฝ๋๋ฅผ ์ถ๊ฐํ๋ ์์
์ ์งํํ๊ณ , ์ด๋ ์๋ก ๋ณ๊ฒฝ๋ ๋ธ๋์น์ธ feature/modify-custom-userdetails
์์ ์งํํด์ผ ํ๋ค.
์๋ก ์ถ๊ฐํ ํ
์คํธ์ฝ๋ ์ถ๊ฐ ์์
์ ๋์ค์ feature/add-test-code
๋ก ์ฎ๊ธฐ๊ธฐ ์ํด feature/add-test-code-tmp
๋ธ๋์น๋ก ๋ฐ๋ก ๊ธฐ๋ก์ ํด๋์๋ค.
์ด์ PR์ด approve ๋๊ณ , feature/add-test-code
๋ธ๋์น์ feature/modify-custom-userdetails
๋ธ๋์น๊ฐ ๋จธ์ง๋๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ํฉ์ด ๋๋ค.
์ด์ ๋จธ์ง๋๊ธฐ์ ๋ธ๋์น์ธ feature/modify-custom-userdetails
์์ ์์
ํ ๋ด์ฉ์ ํ์ฌ ๋ธ๋์น์ธ feature/add-test-code
๋ก ์ฎ๊ฒจ์ผ ํ๋ค.
https://www.atlassian.com/ko/git/tutorials/rewriting-history/git-rebase
์ด๋ฌํ ๊ทธ๋ฆผ์ด ๋๋ค.
์ฆ ๋ค๋ฅธ ๋ธ๋์น์์ ์ํํ ์ปค๋ฐ ์ํ์ค๋ฅผ ํ์ฌ ๋ธ๋์น๋ก ์ฎ๊ธฐ๋ ์์ ์ด๋ค.
git rebase ์ฌ์ฉ
๋ค๋ฅธ ๋ธ๋์น(feature/add-test-code-tmp
) ์์ ์ํํ ์์
์ ํ์ฌ ๋ธ๋์น (feature/add-test-code
) ๋ก ์ฎ๊ฒจ๋ณด์.
์ปค๋ฐ์ ์ฎ๊ธธ ๋ธ๋์น๋ก ์ด๋ํ๋ค.
git checkout feature/add-test-code-tmp
rebase
๋ฅผ ์ํํ๋ค.
git rebase feature/add-test-code
rebase ๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์ํ๋๋ฉด feature/add-test-code
์ ๋ง์ง๋ง ์ปค๋ฐ ๋ค์ ์๋ก์ด ์ปค๋ฐ์ด ์์ฑ๋๋ค.
feature/add-test-code
๋ธ๋์น๋ก ์ด๋ํด fast-forward ๋จธ์ง๋ฅผ ์ํํด์ค๋ค.
git checkout feature/add-test-code
git merge feature/add-test-code-tmp
ํ์์ ๋ฐ๋ผ ๋ถํ์ํ ๋ธ๋์น๋ ์ ๊ฑฐํ๋ค.
git branch -d feature/add-test-code-tmp
์ง์ ๋ถํ ๋จธ์ง ์์ด ๊น๋ํ๊ฒ ๋ฐ์๋ ๋ชจ์ต์ด๋ค.
์ธ์ ์จ์ผํ๋๊ฐ
๋๋ ๋ณดํต rebase๋ฅผ ์๋ก์ด ๋ธ๋์น์์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ณ , ์๋ณธ ๋ธ๋์น์ ๋ฐ์๋๊ธฐ ์ ์๋ณธ ๋ธ๋์น์์ ์ถ๊ฐํด์ผํ ์์ ์ด ์์๋ ์๋ก์ด ๋ธ๋์น์์ ์์ ์ ์ํํ๊ณ ๋์ค์ rebase๋ก ๋ถ์ด๋ ๋ฐฉ์์ผ๋ก ์ฌ์ฉํ๋ค.
์ฆ ์์ ์ํฉ์์ ์ฌ์ฉํ๋ค.
์๋ก์ด ๋ธ๋์น๊ฐ ์๋ณธ ๋ธ๋์น๋ก ๋จธ์ง๋๊ธฐ ์ , ์๋ณธ ๋ธ๋์น์์ ์งํํด์ผํ ์์
์ด ์์๋ ์ฐ์ ์๋ก์ด ๋ธ๋์น์์ ์๋ก์ด ๋ธ๋์น๋ฅผ ํ ์ํํ๊ณ (๋ณดํต ๊ตฌ๋ถ์ ์ํด ์ด๋ฆ ๋ค์ tmp
๋ฅผ ๋ถ์) ๋์ค์ ์๋ก์ด ๋ธ๋์น๊ฐ ๋จธ์ง๋๋ค๋ฉด, ์๋ณธ ๋ธ๋์น์์ rebase ๋ฅผ ์ํํ๋ค.
์ฅ์
rebase๋ ์ปค๋ฐ ๊ธฐ๋ก์ ๊น๋ํ๊ฒ ๊ด๋ฆฌํ ์ ์๋ค.
๋ง์ฝ ์์ ์ํฉ์์ merge๋ฅผ ํด๋ ๋์ผํ๊ฒ ๋์ํ์ง๋ง, ์ง์ ๋ถํ ๋ธ๋์น ๊ทธ๋ํ๊ฐ ๋ง๋ค์ด์ง๊ฒ ๋๋ค.
๋์ค์ ์๋๋ฅผ ํ์ ํ๊ธฐ๋ ํ๋ค๊ณ , ์์๋ณด๊ธฐ๋ ํ๋ค๋ค.
์ด๋ด๋ rebase๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ๊น๋ํ๊ฒ ์์ ์ ์ํํ ์ ์๋ค.
๋จ์
ํญ์ ์ฅ์ ๋ง ์๋๊ฒ์ ์๋๋ค. rebase์์ฒด๊ฐ ๋ฒ ์ด์ค๋ฅผ ์ฎ๊ธฐ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋ง์ฝ ์ด์ ๋ฒ ์ด์ค์์ ๋๋ฅผ ์ ์ธํ ๋ค๋ฅธ ์ฌ๋์ด ์์ ์ ์งํํ๋ค๋ฉด, ์ข ๋ณต์กํด์ง ์ ์๋ค.