conflict(충돌)

박태영·2024년 6월 7일
0

git

목록 보기
8/44
  • 같은 부분에 다른 코드들이 합쳐져야 하는경우 git은 무엇을 선택해야 할지 알수 없으므로 두 코드가 conflict(충돌)이 일어났음을 알려준다.


    실습하기

    merge하는 경우의 conflict

  1. 충돌이 일어나는 상황을 만들기 위해
    conflict-1,conflict-2 브랜치를 각각 생성한다.

  2. 충돌이 나도록 내용을 변경 후에 merge 를 실행한다.

  3. conflict가 일어났음을 알려주는 로그 확인

  4. vscode에서 conflict 부분을 확인하고 해결한다

    • 충돌 범위가 넓거나 당장 해결 할 수 없는 경우
      git merge --abort를 입력하여 merge를 취소한다.
  5. 충돌 부분을 해결 한 후 git add . ,git commit 을 입력하여 merge결과를 commit 한다.

    • merge 결과를 확인

    rebase하는 경우의 conflict

  • Rebase의 경우 떼어지는 branch의 commit을 하나하나 떼어다가 main에 붙이기 때문에 붙일때 마다 충돌이 일어난다면 충돌된것 하나하나마다 차례로 conflict를 해결해 주어야 한다.
  1. git switch conflict-2 명령어로 브랜치를 이동한다.

  2. git rebase main 을 입력하여 conflict-2 브랜치의 내용을 main branch에 rebase한다.

  3. git status 를 입력하여 현재 상황 확인

  4. conflict 된 부분을 확인하여 해결한다.

    • merge와 마찬가지로 당장 해결할 수 없는경우 git rebase --abort 명령어를 이용하여 rebase과정을 취소할 수 있다.
  5. git add . 입력하여 충돌 해결된 부분을 add 한다.

  6. merge와는 다르게 git rebase --continue 를 입력하여 다음 commit rebase를 계속한다.

  7. git rebase --continue하면 commit을 요구하므로 commit을 해준다.

    • conflict-2의 commit중 하나가 붙은것을 확인
  8. 다른 conflict가 발생하면 이전과 같은 과정으로 해결한다.

  9. rebase가 성공적으로 완료되었음을 확인

  10. 마지막으로 main branch를 fast-forward하기 위해 main 브랜치로 이동하여 merge를 진행한다. git merge conflict-2

  11. 필요없어진 conflict-2브랜치는 삭제한다.
    git branch -d conflict-2

profile
어른 아이

0개의 댓글

관련 채용 정보