데브옵스(DevOps)/Git & Github

[Git / Github] 깃과 깃허브의 병합 충돌 해결하기

잇트루 2022. 8. 28. 00:29
반응형

병합 충돌

병합 충돌은 Remote Repository의 내용을 동료와 같은 부분을 변경한 내용이 존재해 자동으로 병합할 수 없을 때 발생한다. 여러 IDE에서는 이러한 충돌을 해결하기 위해 충돌이 발생한 부분을 나타내 준다. 따라서, 비교하면서 이를 적절히 수정해야 충돌을 해결할 수 있다.

 

충돌 파일 확인하기

다음 명령어를 통해 어떤 파일이 충돌하고 있는지 확인한다.

git status

위 명령어를 사용하면, both modified에 충돌 중인 파일들을 알려준다.

 

다음 충돌이 발생할 파일을 IDE를 통해 열어본다. 대부분의 IDE에서는 충돌이 일어난 부분을 알려주기 때문에 파악이 가능하다.

 

충돌한 파일은 다음과 같은 형태로 나타날 것이다.

<<<<<<< HEAD (Current Change)

사용자의 구현 코드

=======

동료의 구현 코드

>>>>>>> (Incoming Change)

 

이렇게 나타난 코드를 직접 수정한 뒤, 사용자의 구현 코드를 반영하려면 Accept Current Change, 원격 저장소의 내용을 반영하려면 Accept Incoming Change, 변경 사항 모두를 반영하려면 Accept Both Changes를 클릭한다.

이 외에도 직접 파일을 수정하여 반영하는 방법도 있다.

 

수정을 마치면 병합 커밋(merge commit)을 생성해 주기 위해 파일을 staging area로 추가해야 한다.

즉, git add 명령어를 통해 수정한 파일을 커밋할 수 있는 상태로 한 뒤, git commit → git push를 진행한다.

 

병합 충돌 해결 워크플로우

# 1
git status

# 2
# 병합 충돌을 일으키는 파일을 확인한 뒤 수정

# 3
git add .

# 4
git commit -m '커밋 메세지'

# 5
git push

 

반응형