Today I Learned/git 뿌시기

Git 시작하기 (4) - merge (branch 합치기)

하나719 2020. 11. 5. 01:38
반응형

2020/11/04 - Git 시작하기 (3) - branch 만들기

 

Git 시작하기 (3) - branch 만들기

브랜치는 왜 필요한가? 한가지 작업물을 여러 사람이 같이 수정하다보면, 다양한 버전의 결과물이 생기게 됩니다. 예시 상황) 팀원 2명이 함께 PPT 만드는 작업을 하다가 10페이지까지는 같이 만

hanawithdata.tistory.com

앞에서 branch로 작업을 쪼개서 진행해보았습니다.

이제 각자 작업한 버전에서 필요한 부분을 하나로 합치려고 합니다.

 

Merge 란?

여러 브랜치를 하나로 모아주는 작업!

 

예를들어 아래 그림에서 base 코드에서 branch를 만들어서  a branch에서 작업을하고, g branch에서 작업을하고, 다시 master에서 작업을 했습니다. 그리고 a 와 master를 다시 합쳐주는 작업을 merge 한다고 합니다.

 

출처: 생활코딩 - git 강의

Merge 해보기

base file: work.txt

work.txt

 

충돌나지 않는 경우

  • 다른 파일을 수정한 후 합칠 때
  • 같은 파일의 다른 line을 수정한 후 합칠 때

1 ) o2 branch 생성: git branch o2

2) master branch 에서 work.txt 파일 수정: 위쪽 content 아래 master 문구 입력

수정 후 커밋

3) branch o2로 변경후 work.txt 파일 수정: 아래쪽 content 아래 o2 문구 입력

-branch 변경:  git checkout o2

4) master branch로 이동해서 merge

- branch 변경: git checkout master

- merge: git merge o2

 

5) 파일 확인: 두 버전이 합쳐져서 자동으로 각 버전에서 추가한 부분이 모두 작성되어 있다.

충돌이 일어나는 경우

  • 같은 파일의 같은 부분을 수정했을 때

1) 새로운 브랜치 만들기: git branch o2

2) master branch 에서 파일 수정: new master 문구 추가

3) o2 브랜치로 이동해서 파일 수정: master branch 에서 수정했던 위치에 new o2 문구 추가

4) master branch 로 이동해서 merge

- git checkout master

- git merge o2

 

이 때 conflict 가 발생했다는 메시지를 확인할 수 있다. 

conflict 발생

5) 파일 확인 후 직접 수정

 ====== 표시 기준으로, master 브랜치와 o2 브랜치에서 어떤 문구가 추가되었는지 확인할 수 있습니다.

어떤 부분을 남길건지 직접 수정해줍니다.

예시에서는 new master, new o2 두가지 모두 남기겠습니다.

6) add & commit 

- git add work.txt

- git commit 

이때 커밋 메시지를 작성해주지 않아도 됩니다.

손으로 수정한 대로 파일이 업로드 되었음을 확인할 수 있습니다.

반응형