충돌이란?
깃이 자동으로 병합을 완료 할 수 없는 상황을 말한다.
(예) 두명의 개발자가 각자의 브런치에서 동인한 코드를 수정했을 때 깃 입장에서는 어떤 변경사항을 최종적으로 반영해야 하는지 알수 가 없다.
충돌 발생시키기
1. main 에서 코드를 수정하고 커밋 및 푸쉬 를 한 후
2. 브랜치에서 하나의 기능을 추가 한후 커밋을 한다.
3. 다시 main 으로 돌아와서 병합을 시도
자동 병합: test.py
충돌 (내용): test.py에 병합 충돌
자동 병합이 실패했습니다. 충돌을 바로잡고 결과물을 커밋하십시오.
위와 같은 메시지가 출력 될 것이다.
충돌 해결하기
충돌이 일어난 코드를 확인
<<<<<<< HEAD (현재 변경사항)
print('hello' * 3)
# check odd number
num = int(input("Enter a number: "))
if (num % 2) == 0:
print(f"{num} is Even")
else:
print(f"{num} is Odd")
=======
print('hello ' *3)
# check odd number
num = int(input("Enter a number: "))
if (num % 2) == 0:
print("{0} is Even".format(num))
else:
print("{0} is Odd".format(num))
>>>>>>> dev2 (수신 변경사항)
- <<< >>> 이 충돌이 일어난 구간을 알려주는 기호
- ==== 는 구분해주는 기호
여기서 무엇을 제거하고 저장할 것인지 결정하고 남겨둔 후
메인에서 최종본만 남겨두고 충돌을 알려주는 구문을 제거하면 된다.
git add .
git commit -m "resolve conflicts"
git push -u origin main
확인
git log --pretty=oneline --graph
아래와 같이 커밋 내역을 확인 가능
* d3...be6 (HEAD -> main, origin/main) resolve conflicts
|\
| * 484...778 (dev2) add pow
* | e5b..17 fit: check odd number
|/
* ef1...9bbc squash & merge
* 4df..a20126 first commit
'프로그래밍 > Git & GitHub' 카테고리의 다른 글
협업을 위한 깃 명령어: branch 전략 (0) | 2023.12.10 |
---|---|
협업을 위한 깃 명령어 : 커밋을 되돌려보자 (0) | 2023.11.30 |
협업을 위한 깃 명령어: 브랜치 (0) | 2023.11.30 |
git add (0) | 2023.07.30 |
git Commit Convention (0) | 2023.07.22 |