배꼽파지 않도록 잘 개발해요

[Git] 현재 작업 중인 브랜치에 dev 브랜치의 최신 내용을 반영하는 방법 - merge와 rebase 본문

BackEnd/AWS / Docker / Git

[Git] 현재 작업 중인 브랜치에 dev 브랜치의 최신 내용을 반영하는 방법 - merge와 rebase

꼽파 2024. 9. 3. 16:56

상황 설명

우리 팀의 브랜치
- dev : 우리 팀의 default 브랜치, 모든 작업은 여기다 합침
- feature/user : 내가 작업하려고 새로 만든 브랜치
- feature/post : 다른 분이 작업하신 브랜치

상황
- 내가 feature/user을 새로 만들어서 작업하고 커밋을 했음.
- 그런데 feature/post 작업 결과가 dev에 반영이 안 된 상태임.
- 그래서 dev 브랜치에 feature/post를 merge를 하였음.
- 나는 dev브랜치의 최신 내용을 현재 있는 브랜치(feature/user)에 반드시 가져와야만 함.

이럴 때는 어떻게 해야할까?


1. Merge를 한다.

현재 브랜치에 dev브랜치의 변경사항을 합친다.

# 현재 브랜치에서 작업하고 있는지 확인
git status

# 현재 브랜치가 맞는지 확인
git branch

# 현재 브랜치에서 최신 dev 브랜치를 병합
git fetch origin
git merge origin/dev

 

git status를 입력한다.

이전에 커밋한 이후 더 커밋한 것이 없어서 clean하다고 뜬다.

 

git branch로 현재 어느 브랜치에 있는지 확인한다.

feature/user 브랜치에 있다.

 

git fetch origin으로 최신 변경 사항을 가져온다.

그리고 git merge origin/dev로 원격 저장소에 있는 dev의 최신 사항을 합친다.

이렇게 되면 현재 작업한 내용과 더불어 dev브랜치의 최신 변경사항도 다 합쳐진다.

물론 충돌나면 수작업으로 해결해야한다.


2. Rebase를 한다.

rebase를 하면 커밋 히스토리의 구조가 변경되어 선형으로 이어지게 된다.

merge는 두 브랜치를 합친 후 복잡한 히스토리를 그대로 유지한다.

결과는 둘 다 같다.

# 현재 브랜치에서 작업하고 있는지 확인
git status

# 현재 브랜치가 맞는지 확인
git branch

# 현재 브랜치에서 최신 dev 브랜치를 기반으로 리베이스
git fetch origin
git rebase origin/dev
728x90