[Git] Merge & Conflict

Joo·2024년 5월 3일
0

Git

목록 보기
4/5

Merge

  • 두 개 이상의 branch에서의 작업을 결합해 하나의 branch로 합치는 과정
  • 주로 새 기능 개발 후, 버그 수정 후, 릴리즈 작업 완료 후 사용함
  • merge에는 주종관계가 있기 때문에 선후관계를 명확히 해야 함 (예, main/master branch로 이동해서 다른 branch 병합하기)

Merge를 직접 실행하기 전에 Merge Tool을 설정해야함

git config --global -e # 에디터가 열리면 config 파일에 아래의 코드 추가
[merge]
	tool = vscode
[mergetool "vscode"]
	cmd = "code --wait $MERGED" # 저장 후 닫기

현재 위치한 Branch에 다른 branch를 병합

git merge <branchname>

Merge Conflict

  • Branch를 merge하는 과정에서 충돌 발생할 수 있음
  • 혹은 push, pull하는 과정에서도 발생할 수 있음

해결 방법

ㄱ. Merge tool 실행
Conflict 발생 후 아래와 같이 merge tool을 실행하면 conflict난 파일들이 차례로 열림

git mergetool

프린트 결과)

Merging:
test.txt

Normal merge conflict for 'test.txt':
  {local}: modified file
  {remote}: modified file

이후, master(main) branch와 다른 branch의 diff가 나타나는데, 여기서 선택하고 싶은 걸 제외하고 다 삭제하고 저장하면 됨

다음으로 conflict 해제 (git add + git commit)

git add test.txt
git commit

그러면 기본 에디터에 'Merge branch 'branchname' into master'라고 뜸
이거는 저장하고 닫으면 됨 (Merge 완료)

완료된 merge를 git log를 통해 확인할 수 있음

profile
적당히 공부한 거 정리하는 곳

0개의 댓글