현재 브랜치 상태
Main 브랜치에서는 Tigers, Leopards, Panthers 를 수정
conflict-1 브랜치에서는 Tigers 수정
conflict-2 브랜치는 2번의 커밋으로 나눠서 Leopards 와 Panthers 수정
1. merge 충돌 해결하기
git merge conflict-1 로 병합을 시도하면 충돌 발색
- 오류 메시지와 git status 확인
- vs code에서 해당 부분 확인
conflict-1 과 main 브랜치는 똑같은 tiger 파일에서 수정했음으로 충돌이 발생한다.
conflict-1 브랜치에선 manager 를 Deborah 로 변경했었고 main 브랜치 에선 Kenneth 로 변경했었다.
- Accept Current Change: main 브랜치에 있는 내용 선택
- Accept Incoming Change: conflict-1 내용 선택
- Accept Both Changes: 두 내용 모두 선택
- Compare Changes: 변경사항 보기
충돌하는 내용이 너무 많아서 당장 merge 는 중단 하고 싶으면 아래의 명령어 입력
git merge --abort
충돌을 모두 해결했다면 아래의 명령어 실행
git add .
git commit
2. rebase 충돌 해결하기
conflict-2 에서 git rebase main 으로 리베이스 시도하면 충돌 발생
충돌을 해결하고 아래의 명령어 입력
git add .
git rebase --continue
git rebase --continue 실행할때 마다 새로운 commit 이 생성된다 .
rebase 가 끝날때까지 위의 명령어 두개를 반복해주면 된다.
리베이스 종료시 커밋이 1개만 추가 된 이유는 충동 해결 중 두번째 것에서는 current, 즉 main 브랜치의 것을 채택했기 때문에 커밋으로 추가 할 이유가 없기 때문이다.
main 브랜치고 이동 한 후에 merge 하고 conflict 브랜치들을 삭제 해주자
git switch main
git merge conflict-2
git branch -d conflict-1
git branch -d conflict-2
'GIT' 카테고리의 다른 글
원격 저장소 사용하기 (0) | 2024.04.29 |
---|---|
checkout (0) | 2024.04.29 |
merge 와 rebase (0) | 2024.04.28 |
reset 과 revert (0) | 2024.04.26 |
commit + diff (0) | 2024.04.25 |