Git
git rebase 시, --continue 옵션 사용
헬로우월드
2023. 6. 28. 16:02
git rebase
는 커밋 히스토리를 깔끔하게 유지하거나 브랜치를 재정렬하는 데 유용한 명령어입니다. 예시를 통해 git rebase
사용 방법을 설명드리겠습니다.
상황 설정
main
브랜치가 있습니다.feature
라는 새로운 브랜치를 만들고 이 브랜치에서 작업을 합니다.feature
브랜치에서 몇 가지 커밋을 만듭니다.- 이 과정에서
main
브랜치에 몇 가지 커밋이 추가됩니다. - 이제
feature
브랜치를main
브랜치 위에 재정렬(rebase)하려고 합니다.
예제
1. 초기화 및 기본 브랜치 생성
git init rebase-example
cd rebase-example
# 파일 하나 만들고 커밋
echo "Hello, World!" > file.txt
git add file.txt
git commit -m "Initial commit"
# main 브랜치가 기본 브랜치
git branch -M main
2. feature 브랜치 생성 및 커밋 추가
# feature 브랜치 생성 및 전환
git checkout -b feature
# 작업 1
echo "Feature 1" >> file.txt
git add file.txt
git commit -m "Add feature 1"
# 작업 2
echo "Feature 2" >> file.txt
git add file.txt
git commit -m "Add feature 2"
3. main 브랜치에 커밋 추가
# main 브랜치로 돌아가기
git checkout main
# 작업 3
echo "Main update 1" >> file.txt
git add file.txt
git commit -m "Update from main branch"
# 작업 4
echo "Main update 2" >> file.txt
git add file.txt
git commit -m "Another update from main branch"
4. feature 브랜치를 rebase
# feature 브랜치로 돌아가기
git checkout feature
# main 브랜치 위에 feature 브랜치 재정렬
git rebase main
rebase 중 발생할 수 있는 충돌 해결
만약 충돌이 발생한다면 Git은 충돌이 발생한 파일을 표시하고 수동으로 해결하도록 요청합니다.
※ --continue 옵션으로 해결
# 충돌 해결 후
git add <conflicted-file>
git rebase --continue
5. rebase 결과 확인
# rebase 결과 확인
git log --oneline --graph --all
예제 코드 설명
git rebase main
:feature
브랜치를main
브랜치 위에 재정렬합니다.git rebase --continue
: 충돌을 해결한 후 rebase를 계속합니다.
이 과정을 통해 feature
브랜치는 main
브랜치의 최신 커밋들 위로 이동하게 되며, 깔끔한 커밋 히스토리를 유지할 수 있습니다.