본문 바로가기
IT/Git

git rebase 충돌 해결

by 뉴코딩맨 2023. 3. 8.
git rebase 명령어를 사용하다 보면 충돌이 발생하는 경우가 있습니다. rebase를 중단하기 위해서는 git rebase --abort 명령어를 사용하면 되고 충돌을 해결하기 위해서는 일단 충돌한 파일을 열어서 내용을 수정하고 스테이징 영역에 추가합니다. 그리고 git rebase --continue 명령어를 사용해서 커밋 메시지를 작성하면 충돌이 해결되고 rebase가 완료가 됩니다.
 

master.txt 파일 생성

 

USER-PC@DESKTOP-JAEGCLI MINGW64 ~/Desktop/gitstudy (master)
$ touch master.txt

USER-PC@DESKTOP-JAEGCLI MINGW64 ~/Desktop/gitstudy (master)
$ git add master.txt

USER-PC@DESKTOP-JAEGCLI MINGW64 ~/Desktop/gitstudy (master)
$ git commit -m "create master.txt"
[master (root-commit) 69db471] create master.txt
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 master.txt

 

feature 브랜치 생성 및 feature.txt 파일 생성

 

USER-PC@DESKTOP-JAEGCLI MINGW64 ~/Desktop/gitstudy (master)
$ git switch -c feature
Switched to a new branch 'feature'

USER-PC@DESKTOP-JAEGCLI MINGW64 ~/Desktop/gitstudy (feature)
$ touch feature.txt

USER-PC@DESKTOP-JAEGCLI MINGW64 ~/Desktop/gitstudy (feature)
$ git add feature.txt

USER-PC@DESKTOP-JAEGCLI MINGW64 ~/Desktop/gitstudy (feature)
$ git commit -m "create feature.txt"
[feature c3d5928] create feature.txt
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 feature.txt
 

feature 브랜치에서 master.txt 파일에 content2 추가

 

USER-PC@DESKTOP-JAEGCLI MINGW64 ~/Desktop/gitstudy (feature)
$ git commit -am "add content2 master.txt"
[feature 038060a] add content2 master.txt
 1 file changed, 1 insertion(+)

 

master 브랜치에서 master.txt 파일에 content1 추가

 

USER-PC@DESKTOP-JAEGCLI MINGW64 ~/Desktop/gitstudy (feature)
$ git switch master
Switched to branch 'master'

USER-PC@DESKTOP-JAEGCLI MINGW64 ~/Desktop/gitstudy (master)
$ git commit -am "add content1 master.txt"
[master b5ae533] add content1 master.txt
 1 file changed, 1 insertion(+)

 

feature 브랜치에서 feature.txt 파일에 content 추가

 

USER-PC@DESKTOP-JAEGCLI MINGW64 ~/Desktop/gitstudy (master)
$ git switch feature
Switched to branch 'feature'

USER-PC@DESKTOP-JAEGCLI MINGW64 ~/Desktop/gitstudy (feature)
$ git commit -am "add content feature.txt"
[feature 87db9e8] add content feature.txt
 1 file changed, 1 insertion(+)

 

feature 브랜치에서 rebase 충돌 해결

 

USER-PC@DESKTOP-JAEGCLI MINGW64 ~/Desktop/gitstudy (feature)
$ git rebase master
Auto-merging master.txt
CONFLICT (content): Merge conflict in master.txt
error: could not apply 038060a... add content2 master.txt
hint: Resolve all conflicts manually, mark them as resolved with
hint: "git add/rm <conflicted_files>", then run "git rebase --continue".
hint: You can instead skip this commit: run "git rebase --skip".
hint: To abort and get back to the state before "git rebase", run "git rebase --abort".
Could not apply 038060a... add content2 master.txt

USER-PC@DESKTOP-JAEGCLI MINGW64 ~/Desktop/gitstudy (feature|REBASE 2/3)
$ git add master.txt

USER-PC@DESKTOP-JAEGCLI MINGW64 ~/Desktop/gitstudy (feature|REBASE 2/3)
$ git rebase --continue
[detached HEAD b7f7195] add content1 master.txt
 1 file changed, 1 insertion(+), 1 deletion(-)
Successfully rebased and updated refs/heads/feature.

USER-PC@DESKTOP-JAEGCLI MINGW64 ~/Desktop/gitstudy (feature)
$ git log --oneline
8b1bf63 (HEAD -> feature) add content feature.txt
b7f7195 add content1 master.txt
b73ea7b create feature.txt
b5ae533 (master) add content1 master.txt
69db471 create master.txt

 

master.txt-파일-충돌
master.txt-파일-충돌

 

master.txt-파일-충돌-해결
master.txt-파일-충돌-해결

 

commit-메시지-수정
commit-메시지-수정

 

충돌한 파일의 내용을 수정하고 저장을 하고 git add 명령어로 스테이징 영역에 추가합니다. git rebase --continue 명령어를 입력하면 commit 메시지를 수정할 수 있는 창이 열리고 수정하고 저장 후 창을 닫으면 충돌을 해결할 수 있습니다. 충돌이 발생했을 때 hint 메시지를 보고 명령어를 입력하면 외우지 않고 입력할 수 있습니다.

'IT > Git' 카테고리의 다른 글

git rebase 커밋 합치기  (0) 2023.03.09
git rebase 커밋 메시지 수정  (0) 2023.03.09
git rebase 명령어  (0) 2023.03.07
GitHub로 협업하기 - Forking Workflow  (0) 2023.03.06
github pull request 사용법  (0) 2023.03.03

댓글