본문 바로가기

GIT

GIT - branch (merge)

출처 : egoing.org

1. 초기 git 버전관리시스템 설정

 

(1) - default.txt 파일을 가지고 있는 default work 1버전

(2) - default work1 버전에서 파생되어 default.txt 파일과 o2.txt파일을 가지고 있는 o2 work 2버전

(3) - default work1 버전에서 파생되어 default.txt 파일과 master.txt파일을 가지고 있는 master work 2버전

 

2. master branch에 o2 branch를 병합하여 새로운 버전을 만들기

 

(1) - git checkout master로 현재 브런치를 master로 만든다

(2) - git merge o2를 하여 o2 브런치를 master 브런치에 병합 한다

(3) - 왜 병합하는지 병합 내용을 Message로 써주고 ESC -> : -> wq 로 빠져나온다

(4) - 이제 우리의 master는 새로운 버전을 가르키게 되고 o2의 최신 버전과 master의 이전 버전을 공통의 조상으로 하는 새로운 master 브랜치의 new 버전이 생기게 된다

병합되어서 master.txt와 o2.txt 모두 가지게 된다 

 

 

 

3.하나의 default.txt 파일에 2개의 branch로 각각의 변화를 주고 그 둘을 merge하기

 (1) - (master branch) default.txt 파일 생성 # title / content # title / content 내용 작성 후 work 1 버전으로 커밋

 (2) - o2 branch 생성

 (3) - (master branch) default.txt 파일 수정 # title / master content # title / content 수정 후 master work2 버전 으로 커밋

 (4) - git checkout o2

 (5) -(o2 branch) default.txt 파일 수정 # title / content # title / o2 content 수정 후 o2 work2 버전으로 커밋

 (6) - git checkout master

 (7) - git merge o2 (master branch를 기준으로 하여 o2 branch를 병합)

 (8) - 병합된 새로운 default.txt 파일 버전이 생성됨 # title / master content # title / o2 content 

 

 

 

 

 

 

 

4.하나의 default.txt 파일에 2개의 branch로 공통의 변화를 주고 conflict 해결

(1) - default.txt의 기존 work 1 버전에서 파생된 master work 2버전 생성

 

(2) - default.txt의 기존 work 1 버전에서 파생된 o2 work 2버전 생성

 

(3) - (1) 과 (2) 이 후 git checkout으로 HEAD를 master에게 준 git log 상태

 

 

 

(4) - git merge o2 를 하면 현재 branch인 master branch의 master work 2 버전을 중심으로

 

  ★ - o2 work 2 버전의 내용이 master work 2 버전의 내용에서 +된 내용이 있는 부분은 합쳐지게 되고

  ( (1)의 5 번째 줄의 content , (2) 의 5번째 줄의 o2 content)

 

 

  ★ - o2 work 2 버전의 내용이 master work 2 버전의 내용에서 -되거나 다른내용으로 바뀐 부분은

아래와 같은 방식으로 우리에게 보여주고 선택을 하도록 한다 

  ( (1)의 2,3번째 줄과 (2)의 2,3번째 줄)

 

<<<<<<<<HEAD

  master work2 버전의 원래 내용

---------------

---------------

o2 work2 버전의 원래 내용

<<<<<<<< o2

 

 

(5) - 아래와 같이 내용을 수정하고 git stauts를 해보면 both modified가 나온다

 

 

(6) - 이제 변경된 사항을 git add default.txt 로 stating Area에 올리고

 

 

(7) - git commit  명령어를 입력하면 아래와 같이 Confilct 즉 충돌된 파일이 있었고 이를 해결했다는 메세지가 나온다

    - ESC -> : -> wq로 빠져나오면 병합 완료

 

 

(8) - git log

'GIT' 카테고리의 다른 글

GIT - backup, push  (0) 2020.12.12
GIT - branch(3 way merge)  (0) 2020.12.11
GIT - branch  (0) 2020.12.04
GIT - git reset, git revert  (0) 2020.12.04
GIT - git bash 단축키 및 명령어 중간정리  (0) 2020.11.30