git merge할 때 무언가 문제가 생겨서 자동적으로 해결이 안된,
충돌이 났을 때 발생
<2가지의 branch에서 동일한 파일을 수정했을 떄>
1. 수동으로 해결하기
동일한 파일을 수정을 하고 merge했을 떄
동일한 파일이 수정되었다고 나타난다.
파일 보기
cat main.txt type main.txt (윈도우)
cmder에서 파일을 열어서 확인하기
open main.txt start main.txt (윈도우)
파일을 열어서 직집 수정을 완료한다.
conflict 해결만 하기!!!
추가하거나 다른 것을 시도하지 말 것!!
git status로 상태확인하고 git add를 한다.
git add main.txt
마지막으로 git merge --continue를 해준다.
git merge --continue git hist로 확인하기
2. VS Code으로 해결하기
글로벌 세팅값을 edit모드로 열기
git config --global -e (vscode 열리고)
[merge]
tool = vscode
[mergetool "vscode"]
cmd = code --wait $MERGED
merge를 하고 conflict가 발생했다.
git merge feature git mergetool ---> vscode로 수정하고 저장하기 git status로 상태 확인
여기서 main.txt.orig라는 수정전 원본파일이 저장이 같이 된다.
type main.txt로 내용을 확인하면 수정된 파일로 보이지만 type main.txt.orig 확인하면 수정되기 전이 보인다.
수정전 파일도 같이 저장되는 orig파일을 삭제하기
git config --global mergetool.keepBackup false
merge 취소하고 디렉토리 파일을 확인해보기
git merge --abort
다시 merge하고 mergetool를 통해 수정하고 상태를 확인하기
git merge feature git mergetool git status
마지막으로 merge를 continue하면 된다.
git merge --continue
3. p4merge로 해결하기
먼저 p4merge 다운로드하기
merge를 했는데 coflict 발생
git merge feature --- conflict 발생했다!
mergetool 바꾸기
git config --global -e [merge] tool = p4merge [mergetool "p4merge"] path = "C:/Program Files/Perforce/p4merge.exe"
mergetool로 p4merge열기
git mergetool
remote로 설정하고 싶으면 오른쪽 하단 파란 버튼 클릭
LOCAL로 설정하고 싶으면 오른쪽 하단 초록 버튼 클릭
둘다 선택하고 싶으면 shift키 누르면서 버튼 클릭
상태 확인 --> merge 계속하기
git status git merge --continue