git 병합 과정에서 충돌이 발생하는 경우
사용한 리눅스 명령어
· echo
: 리눅스에서 자주 쓰이는 출력 명령어로, 옵션 없이도 사용 가능하고 다양한 옵션을 이용하여 여러 방식으로 출력이 가능하다.
$ echo "내용" > 1 // 파일명 : 1
// 해당 경로에 파일명이 존재하지않으면 echo 출력 내용으로 파일을 생성
// 해당 경로에 파일명이 존재하면 echo 출력 내용으로 파일을 덮어쓰기 저장
$ echo "내용" >> 1 // 파일명 : 1
// 해당 경로에 파일명이 존재하지 않으면 echo 출력 내용으로 새로 파일을 생성
// 해당 경로에 파일명이 존재한다면 echo 출력 내용으로 파일을 이어쓰기 저장
· cat
: 간단하게 파일의 내용을 출력할 때 사용할 수도 있지만, 보통 두개 이상의 파일을 연결해서 출력할 때 사용한다. echo와 마찬가지로 리다이렉션 기호(>)를 사용하여 파일을 생성하거나 병합할 때 사용할 수도 있다.
$ cat > 1
파일 내용 입력 ...
// Ctrl + d를 누르면 입력한 파일 내용이 저장 된 파일 1 생성
git bash에서 아래 코드 입력
$ git init
$ touch 0 && git add . && git commit -m "C0"
$ git checkout -b bugFix
$ echo "안녕" > 1 && git add . && git commit -m "C1"
$ git checkout main
$ echo "잘가" > 1 && git add . && git commit -m "C2"
$ git merge bugFix
마지막 명령 실행 시 아래와 같은 에러 출력
$ git merge bugFix
Auto-merging 1 // 1은 파일명
CONFLICT (add/add): Merge conflict in 3
Automatic merge failed; fix conflicts and then commit the result.
병합하고자 하는 세이브 포인트들에 같은 라인에 내용이 있는 파일이 존재하여 자동 병합X
→ 개발자가 직접 병합을 해야한다.
충돌이 발생하면 수습할 때까지 다른 작업을 수행할 수가 없다.
$ echo "안녕잘가" > 1
$ git add .
$ git commit -m "충돌 수습"
파일을 직접 수정하고 병합 커밋을 하면 된다.