본문 바로가기

기타/Git

Git - Branch(브랜치) 병합, 충돌 해결 방법

반응형

# 여러 개의 Branch를 병합하는 방법과 병합시 주의사항을 알아봅니다.
# 충돌이 일어났을 때 해결하는 옵션을 알아보겠습니다.
# CONFLICT(content): Merge conflict in index.html 해결방법에 대해 알아봅니다.

# 전공자가 이해한 git

 




1. Branch 병합(merge)

 


 

- Merge

git merger branch_name

branch 간의 병합은 위의 명령어로 실행됩니다. 주의사항으로는 무조건 합쳐지는 개념이 아니고, 서로 상충되는 내용이 있으면 충돌이 일어나게 되어있습니다.

현재 위치한 branch를 기준으로 merge 대상이되는 branch를 불러와 변경사항을 비교합니다. 서로 충돌이 없는 경우 그대로 merge 합니다. merge가 성공적으로 끝나더라도 여전히 new_branch는 지워지지 않고 존재합니다.

 




2. Branch 병합 충돌(conflict)

 

 


 

- 충돌 해결

충돌은 쉬운 예로 두 branch에서 동시에 서로 같은 내용을 작업해 생깁니다. 이 경우 모든 내용을 가지고 갈지, 한 쪽 내용을 가지고 갈지, 둘 다 취소할지 등을 선택해야 합니다. 수정이 필요한 부분을 수동으로 수정해도 되지만 VScode의 경우 충돌이 일어났을 때 다양한 옵션을 보여주고 사용자가 선택할 수 있도록 도와줍니다. 밑에 예제를 보고 확인해보도록 하겠습니다.

먼저 master branch 입니다. 해당 branch의 index.html 파일에는 빨간 박스 부분을 추가했습니다. 그 다음 master branch를 add, commit 순으로 진행해줍니다.

다음으로 checkout을 통해 new_branch로 이동합니다. 

이제 위에서 했던 방법처럼 두 브랜치를 병합해보도록 하겠습니다. 먼저, checkout을 통해 master branch로 이동합니다.

다음과 같이 충돌을 일으킵니다. 그럼 VScode에서는 어떻게 충돌난 부분을 표시해줄까요?

다음과 같이 충돌한 부분을 표시해주고 있습니다. 이를 해결해주기 위한 옵션을 빨간 박스와 같이 표시해주고 있습니다. 빨간 박스의 각 옵션들을 선택하면 알아서 이 부분들을 수정해줍니다.

Accept Current Change : 해당 옵션을 선택할 경우 현재 위치한 branch의 수정사항을 갖고갑니다.
Accept Incoming Change : 해당 옵션을 선택할 경우 merge한 branch의 수정사항을 갖고갑니다.
Accept Both Changes : 해당 옵션을 선택할 경우 두 branch 모두의 수정사항을 갖고 갑니다.
Compare Changes : 해당 옵션을 선택할 경우 충돌된 부분을 확인하기 위한 화면을 split해서 보여줍니다.

확인 후 수정은 다른 옵션, 혹은 수동으로 수정하시면 됩니다. 각 브랜치들을 병합할 때 오류가 많이 발생할 수 있습니다. VScode는 이를 비교적 쉽게 해결할 수 있도록 도와주기 때문에 사용하시는 것을 추천드립니다.

수정을 완료했을 때 git status를 확인해보면 both modified 혹은 한쪽만 수정된 상태로 index.html 파일이 보일겁니다. 이 파일을 add / commit 해주시면 병합이 완료됩니다.


 

# git 공식 사이트: https://git-scm.com/
# git 설치 사이트: https://git-scm.com/downloads
# git 도움말:
https://git-scm.com/doc
# git hub: https://github.com/

 

 

Git

 

git-scm.com

 

Git - Downloads

Downloads macOS Windows Linux/Unix Older releases are available and the Git source repository is on GitHub. GUI Clients Git comes with built-in GUI tools (git-gui, gitk), but there are several third-party tools for users looking for a platform-specific exp

git-scm.com

 

Git - Documentation

Documentation Reference The official and comprehensive man pages that are included in the Git package itself. Quick reference guides: GitHub Cheat Sheet | Visual Git Cheat Sheet Book Videos Length: 05:59 Length: 04:26 What is Git? Length: 08:15 Length: 05:

git-scm.com

 

GitHub: Where the world builds software

GitHub is where over 65 million developers shape the future of software, together. Contribute to the open source community, manage your Git repositories, review code like a pro, track bugs and feat...

github.com

 

반응형