티스토리 뷰

Tools/Git

[Git] conflict

SdardewValley 2022. 6. 4. 16:36
반응형

conflict

  같은 위치의 코드를 동시에 수정하는 경우자동 병합이 실패하고 conflict가 발생한다.

 

파일의 동일한 줄을 수정하고 merge
복수 개의 파일에서 conflict가 발생했을 때

  파일의 동일한 부분을 수정하고 merge를 하면 CONFLICT 메시지가 출력된다.

 

ㅊconflict가 발생했을 때 status

  conflict가 발생했을 때 자동으로 commit이 생성되지 않는다. 이런 경우 직접 conflict를 해결하고 commit을 생성해야 한다.

  git status로 충돌시 상태를 확인하면 unmerged 메시지를 확인할 수 있다. 이런 충돌을 최소화 하기 위해서는 같이 작업할 때 상의를 하거나 혹은 자주 병합하는 것이 좋다.

 

💡 merge 취소하기
merge를 취소할 때 git merge --abort 명령어를 실행하면 된다.

 

 

conflict 해결

conflict 발생시 코드

<<<<<<< HEAD
기준 브랜치 (main)의 코드
=======
병합하고자 하는 브랜치 (feature)의 코드
>>>>>>> 병합하고자 하는 브랜치명(feature)

  conflict가 발생했을 때 git은 충돌이 발생한 부분을 표시해준다. 메시지는 위와 같다. 충돌을 해결할 때는 충돌이 발생한 부분을 나타내는 부분도 (<<<<<<< HEAD ~ >>>>>>>> feature) 모두 제거해야한다. 

  conflict가 발생한 코드를 수정한 다음 직접 병합한 commit을 생성해야 한다. 똑같이 add -> commit을 진행하면 conflict가 해결된다.

 

 

병합한 브랜치 삭제

git branch -d

  병합을 완료한 브랜치는 삭제할 수 있다. 브랜치 삭제는 git branch -d 브랜치명 명령어를 실행하면 된다.

 

브랜치가 merge 되지 않았을 때

  브랜치가 merge 되지 않은 경우에는 -d 옵션으로는 삭제가 불가능하다. 이런 경우에는 안내 메시지처럼 -d 옵션대신 -D 옵션을 주면된다.

 

main을 기준으로 브랜치 병합 확인

  git branch에 --merged 옵션을 주면 해당 브랜치 기준으로 병합된 브랜치를 확인할 수 있다. --no-merged 옵션을 통해서는 병합되지 않은 브랜치들을 확인할 수 있다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함