브랜치 간 충돌

브랜치 간 충돌

1. 브랜치 간 충돌

  • 파일의 같은 위치에 다른 내용이 입력된 상황에서는 어떻게 해야할까요? 한번 알아봅시다.
  • #1. 일단 먼저, 다음과 같이 입력하여 conflict-1 conflict-2 브랜치를 생성해줍니다.
git branch conflict-1
# (2도 동일)

 

  • #2. main 브랜치에서 TigersmanagerJeon으로, BearscoachChoi로, PantherscoachLee로 변경한 후, 다음과 같이 커밋 메시지를 입력하여 커밋합니다.
git commit -am "Edit Tigers, Bears, Panthers"

 

  • #3. conflict-1 브랜치로 변경 후, TigersmanagerJung으로 변경하고 다음과 같이 입력하여 커밋합니다.
git commit -am "Edit Tigers"

 

  • #4. conflict-2 브랜치로 변경 후, BearscoachYoon으로 변경하고 다음과 같이 입력하여 커밋합니다.
git commit -am "Edit Bears"

 

  • #5. PantherscoachJang으로 변경하고 다음과 같이 입력하여 커밋합니다.
git commit -am "Edit Panthers"

 

  • 다 마쳤으면, 이제 merge로 병합해봅시다.
  • #1. main 브랜치로 이동 후, 다음과 같이 입력하여 병합해줍니다.
git merge conflict-1

 

    → 그러면 충돌이 발생합니다.

    → 현재 managerJeon인데, conflict-1 브랜치에서의 managerJung이기 때문입니다.

    → 현재 변경 사항 수락 또는 수신 변경 사항 수락을 눌러서 변경해줍니다. (저는 현재 변경 사항 수락을 눌렀습니다.) 

 

    ※ 만약, 충돌되는 부분이 너무 많으면, 다음과 같이 입력해서 merge를 중단해주면 됩니다.

git merge --abort

 

  • #2. git add .를 입력한 후, git commit를 입력 하면 다음과 같이 나옵니다. :wq로 저장하여 커밋해줍니다.

 

  • rebase를 하려고 하는데, 충돌이 일어나면 어떻게 해야 할까요.
  • #1. conflict-2 브랜치로 변경 후, 다음과 같이 입력하여 rebase해줍니다.
git rebase main

 

  • #2. 그러면 다음과 같이 나오게 됩니다. git status를 입력하여, 무엇이 문제인지 확인해봅시다.

 

    → bears.yaml이 충돌이 일어난 것을 확인할 수 있습니다.

 

  • #3. bears.yaml에 들어가 coachyoon으로 선택하고 충돌이 해결되었으면, git add .를 입력한 후, 다음과 같이 입력하여 진행해줍니다.
git rebase --continue

 

    → 그러면, 다음과 같이 나오는데 :wq로 커밋을 해줍니다.

 

    → 그러면 아까 나왔던 글이 다시 나타납니다. git status로 무엇이 문제인지 확인하고 해결해줍시다.

 

  • #4. panthers.yaml에 들어가 coachLee로 선택한 후, 아까와 동일하게 진행해줍니다.

    → 그러면, 정상적으로 rebase가 이루어 진것을 확인할 수 있습니다.

    ※ rebase또한, 중단하려면 git rebase --abort를 입력하면 됩니다.

 

  • #5. main 브랜치는 뒤에 있기 때문에 main 브랜치로 이동 후, 다음과 같이 입력해줍니다.
git merge conflict-2

 

  • #6. 다 마무리 되었으면, conflict-1conflict-2 브랜치삭제해줍니다.

2. 정리하며

  • 지금까지 브랜치 간 충돌에 대해 알아보았습니다.
  • 다음 시간엔 SoucrTree브랜치를 다루는 방법에 대해 알아보겠습니다.
 

SourceTree로 브랜치 다루기

SourceTree로 브랜치 다루기 1. SourceTree로 브랜치 다루기 이번엔 SourceTree로 브랜치를 다뤄봅시다! #1. SourceTree의 상단 메뉴에 브랜치 버튼을 클릭 후, to-merge, to-rebase 브랜치를 생성합니다. #1. VSCode로

newbean-j.tistory.com

 

※ 이 글은 얄팍한 코딩사전 님의 유튜브 강의를 참고하였습니다.

'Back-End Study > Git & GitHub' 카테고리의 다른 글

GitHub  (1) 2024.02.08
SourceTree로 브랜치 다루기  (0) 2024.02.06
merge와 rebase  (0) 2024.02.05
브랜치(branch)  (0) 2024.02.05
reset과 revert  (0) 2024.02.02