Git_13_Conflict

지원·2023년 9월 1일
0

Git

목록 보기
13/48
post-thumbnail

git conflict

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

0개의 댓글

관련 채용 정보