git rebase๋?
git rebase๋ Git ๋ฒ์ ๊ด๋ฆฌ ์์คํ
์์ ์ฌ์ฉ๋๋ ๋ช
๋ น์ด ์ค ํ๋๋ก, ์ฝ๋์ ๋ณ๊ฒฝ ์ด๋ ฅ์ ์ฌ๊ตฌ์ฑํ๊ฑฐ๋ ๋ธ๋์น๋ฅผ ํฉ์น ๋ ์ฃผ๋ก ํ์ฉ๋ฉ๋๋ค. git rebase๋ฅผ ์ฌ์ฉํ์ฌ ๋ธ๋์น๋ฅผ ์ด๋ํ๊ฑฐ๋ ๋ค๋ฅธ ๋ธ๋์น์ ๋ณ๊ฒฝ ๋ด์ฉ์ ํ์ฌ ๋ธ๋์น์ ์ ์ฉํ ์ ์์ต๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก git rebase๋ ๋ ๊ฐ์ ์ปค๋ฐ์ ์ ํํ์ฌ ์ด๋ ฅ์ ์ฌ๊ตฌ์ฑํ๋ ์์
์
๋๋ค. ๋ ์์ธํ ์ค๋ช
์ ์ํด ๋ค์์ ์๋๋ฆฌ์ค๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
1. ๊ธฐ๋ณธ ๊ฐ๋
- Git์ ์ปค๋ฐ ๊ทธ๋ํ๋ฅผ ์ฌ์ฉํด ๋ณ๊ฒฝ ์ด๋ ฅ์ ๊ด๋ฆฌํฉ๋๋ค. ๊ฐ ์ปค๋ฐ์ ๋ถ๋ชจ ์ปค๋ฐ์ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ๋ฅผ ๊ฐ๊ณ ์์ผ๋ฉฐ, ๋ธ๋์น๋ ์ด๋ฌํ ์ปค๋ฐ์ ํฌ์ธํฐ๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ ํผ๋ฐ์ค์
๋๋ค.
2. ๋ธ๋์น ์ด๋
- ๋ธ๋์น A์์ ์์
ํ๋ ์ค ๋ธ๋์น B์ ๋ณ๊ฒฝ ๋ด์ฉ์ ๋ฐ์ํ๊ณ ์ถ๋ค๊ณ ๊ฐ์ ํด๋ณด๊ฒ ์ต๋๋ค.
- git checkout A๋ก ๋ธ๋์น A๋ก ์ด๋ํฉ๋๋ค.
- git rebase B ๋ช
๋ น์ ์คํํ๋ฉด, ๋ธ๋์น A์ ์ปค๋ฐ๋ค์ด ๋ธ๋์น B์ ๊ฐ์ฅ ์ต์ ์ปค๋ฐ ์์ ์ฌ๋ฐฐ์น๋ฉ๋๋ค.
3. ๋ณ๊ฒฝ ๋ด์ฉ ๋ฐ์
- ๋ค๋ฅธ ์๋๋ฆฌ์ค๋ก, ๋ธ๋์น A์์ ์์
ํ๋ค๊ฐ ๋ธ๋์น B์ ์๋ ์ต์ ๋ณ๊ฒฝ ๋ด์ฉ์ ๋ธ๋์น A์๋ ๋ฐ์ํ๊ณ ์ถ๋ค๊ณ ๊ฐ์ ํด๋ด
์๋ค.
- git checkout A๋ก ๋ธ๋์น A๋ก ์ด๋ํฉ๋๋ค.
- git rebase B ๋ช
๋ น์ ์คํํ๋ฉด, ๋ธ๋์น A์ ์ปค๋ฐ๋ค์ด ๋ธ๋์น B์ ๊ฐ์ฅ ์ต์ ์ปค๋ฐ ์์ ์ฌ๋ฐฐ์น๋์ด ๋ธ๋์น B์ ๋ณ๊ฒฝ ๋ด์ฉ์ด ๋ธ๋์น A์๋ ์ ์ฉ๋ฉ๋๋ค.
git rebase๋ฅผ ์ฌ์ฉํ ๋ ์ ์ํด์ผ ํ ๋ถ๋ถ์ด ์์ต๋๋ค.
- ์ฌ๋ฐฐ์น๋ ์ปค๋ฐ๋ค์ ์๋ก์ด ์ปค๋ฐ์ผ๋ก ๊ฐ์ฃผ๋๋ฉฐ, ์ด๋ ฅ์ SHA-1 ํด์๊ฐ ๋ณ๊ฒฝ๋ฉ๋๋ค.
- ๋ค๋ฅธ ์ฌ๋๊ณผ ๊ณต์ ํ๊ณ ์๋ ๋ธ๋์น์ ๊ฒฝ์ฐ, ์ฃผ์ํ์ฌ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ์ปค๋ฐ ์ด๋ ฅ์ ๋ณ๊ฒฝํ๋ฉด ๋ค๋ฅธ ๊ฐ๋ฐ์๋ค์ ์์
์ด ์ํฅ์ ๋ฐ์ ์ ์์ต๋๋ค.
- ์ถฉ๋์ด ๋ฐ์ํ ๊ฒฝ์ฐ, git rebase ์์
๋์ค์ ์ค๋จ๋ฉ๋๋ค. ์ถฉ๋์ ํด๊ฒฐํ๊ณ git rebase --continue ๋ช
๋ น์ ์ฌ์ฉํ์ฌ ๊ณ์ ์งํํ ์ ์์ต๋๋ค.
branch merge์์ ์ฐจ์ด
git rebase์ ๋ธ๋์น ๋ณํฉ(Merge) ๋ฐฉ์์ Git์์ ๋ธ๋์น๋ฅผ ๊ด๋ฆฌํ๊ณ ๋ณ๊ฒฝ ์ด๋ ฅ์ ํฉ์น๋ ๋ ๊ฐ์ง ๋ค๋ฅธ ์ ๊ทผ ๋ฐฉ์์
๋๋ค. ๊ฐ๊ฐ์ ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ์ ํน์ง์ ๊ฐ์ง๊ณ ์์ต๋๋ค
1. Git Rebase
- git rebase๋ ๋ณ๊ฒฝ ์ด๋ ฅ์ ๋ค์ ๊ตฌ์ฑํ๋ ๋ช
๋ น์ด๋ก, ๋ธ๋์น์ ์ปค๋ฐ๋ค์ ๋ค๋ฅธ ๋ธ๋์น์ ํน์ ์ปค๋ฐ ์๋ก ์ฌ๋ฐฐ์นํฉ๋๋ค.
- ์ฌ๋ฐฐ์น๋ ์ปค๋ฐ๋ค์ ์๋ก์ด ๋ถ๋ชจ ์ปค๋ฐ ์์ ์์ด๋ฉฐ, ๋ณ๊ฒฝ ์ด๋ ฅ์ด ์ ํ์ ์ผ๋ก ์ ์ง๋ฉ๋๋ค.
- ๋ณด๋ค ๊น๋ํ ์ปค๋ฐ ํ์คํ ๋ฆฌ๋ฅผ ์ ์งํ ์ ์์ด ์ฝ๋ ๋ฆฌ๋ทฐ๋ ์ด๋ ฅ ์ถ์ ์ด ์ฌ์ธ ์ ์์ต๋๋ค.
- ํ์ง๋ง, ๋ค๋ฅธ ๊ฐ๋ฐ์์ ํ์
ํ ๋, ์ด๋ ฅ ๋ณ๊ฒฝ์ผ๋ก ์ธํด ํผ๋์ด ์๊ธธ ์ ์์ผ๋ฉฐ ์ถฉ๋์ ํด๊ฒฐํด์ผ ํ๋ ์ํฉ์ด ์์ฃผ ๋ฐ์ํ ์ ์์ต๋๋ค.
2. ๋ธ๋์น ๋ณํฉ (Merge)
- ๋ธ๋์น ๋ณํฉ์ ๋ ๊ฐ์ ๋ธ๋์น๋ฅผ ํฉ์น๋ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ ์ค ํ๋์
๋๋ค.
- git merge ๋ช
๋ น์ ์ฌ์ฉํ์ฌ ๋ณ๊ฒฝ ์ด๋ ฅ์ ๋ณํฉํ๋ฉฐ, ๋ ๋ธ๋์น์ ๋ด์ฉ์ ํ๋์ ์๋ก์ด ์ปค๋ฐ์ผ๋ก ๊ฒฐํฉํฉ๋๋ค.
- ๋ณํฉ ์ปค๋ฐ์ ๋ณํฉ๋ ๋ ๋ธ๋์น์ ๋ถ๋ชจ ์ปค๋ฐ์ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ๋ฅผ ๊ฐ์ง๋๋ค.
- ๋ณ๊ฒฝ ์ด๋ ฅ์ด ๋ณํฉ๋ ๋ธ๋์น๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ ์ง๋๋ฉฐ, ๋ณํฉ ๊ณผ์ ์์ ์๋์ผ๋ก ์ถฉ๋์ ์ฒ๋ฆฌํฉ๋๋ค.
์์ฝํ๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- git rebase:
- ์ฅ์ : ๊น๋ํ ์ปค๋ฐ ํ์คํ ๋ฆฌ, ๋ณ๊ฒฝ ์ด๋ ฅ์ ์ ํ์ฑ, ์ด๋ ฅ ์ถ์ ๋ฐ ๋ฆฌ๋ทฐ ์ฉ์ด์ฑ.
- ๋จ์ : ๋ค๋ฅธ ๊ฐ๋ฐ์์ ํ์
์ ์ด๋ ฅ ๋ณ๊ฒฝ์ผ๋ก ์ธํ ํผ๋ ๊ฐ๋ฅ์ฑ, ์ถฉ๋ ๋ฐ์ ๊ฐ๋ฅ์ฑ ์ฆ๊ฐ.
- ๋ธ๋์น ๋ณํฉ (Merge):
- ์ฅ์ : ์ถฉ๋์ ์๋์ผ๋ก ์ฒ๋ฆฌํ๋ฉฐ, ๋ค๋ฅธ ๊ฐ๋ฐ์์ ํ์
์ ํผ๋ ๋ฐฉ์ง, ๋น๊ต์ ์ง๊ด์ ์ธ ์ด๋ ฅ ์ ์ง.
- ๋จ์ : ๋ณํฉ ์ปค๋ฐ์ผ๋ก ์ธํด ์ด๋ ฅ์ด ๋ณต์กํด์ง ์ ์์.
'Git' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[git] .gitignore ์ ์ฉ ์๋ ๋ (0) | 2023.08.10 |
---|
๋๊ธ