Git

git rebase 시, --continue 옵션 사용

헬로우월드 2023. 6. 28. 16:02

git rebase는 커밋 히스토리를 깔끔하게 유지하거나 브랜치를 재정렬하는 데 유용한 명령어입니다. 예시를 통해 git rebase 사용 방법을 설명드리겠습니다.

 

상황 설정

  1. main 브랜치가 있습니다.
  2. feature라는 새로운 브랜치를 만들고 이 브랜치에서 작업을 합니다.
  3. feature 브랜치에서 몇 가지 커밋을 만듭니다.
  4. 이 과정에서 main 브랜치에 몇 가지 커밋이 추가됩니다.
  5. 이제 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 브랜치의 최신 커밋들 위로 이동하게 되며, 깔끔한 커밋 히스토리를 유지할 수 있습니다.