(4)-3. Merge와 Rebase

[Git & Gerrit Home으로 돌아가기]

 

[Branch Merge 와 Rebase의 차이 비교 진행 방법]

1. 진행 개요 - Master에서 Branch 3개를 각각 생성(chg1~3)한 다음 Master에서 파일을 변경하고, chg1부터 3까지 각각의 Branch에 고유 파일 생성 및 등록을 통해 변경 진행  단, 파일 변경 시 Branch 명과 동일 또는 유사하게 생성하고 Commit 메시지를 "변경순서, 현재 브랜치명" 으로 입력하여 Rebase 및 Merge의 차이점을 확인 할 수 있도록 구성 Rebase 또는 Merge를 진행 전 해당 폴더 자체를 복제하여 Merge 먼저, 그 다음 Rebase를 진행 한 후, 각각의 폴더에서 Git log 및 Gitk 명령을 통해 GUI 상태에서 변경 내역을 확인

이 내용은 로컬에서만 진행하여 그 변화를 보다 쉽게 확인 할 수 있도록 진행

2. 진행 순서 (1) 공통 작업: 브랜치 생성 및 각각의 브랜치에서 파일 변경 및 Commit 진행

$ git init

 (mst1.txt 파일 생성 및 저장)

 $ git add *  

 $ git commit -m "init"

 $ git branch chg1  

 $ git branch chg2  $ git branch chg3

 

 (mst2.txt 파일 생성 및 저장)

 $ git add *  

 $ git commit -m "1st file change at Master"

 $ git checkout chg1  (chg1.txt 파일 생성 및 저장)  

 $ git add *  

 $ git commit -m "2nd file change at chg1"  (chg1-1.txt 파일 생성 및 저장)  

 $ git add *  

 $ git commit -m "3th file change at chg1"

 $ git checkout chg2  (chg2.txt 파일 생성 및 저장)

 $ git add *  

 $ git commit -m "4th file change at chg2"  (chg2.txt 파일 수정 후 저장)  

 $ git add *  

 $ git commit -m "5th file change at chg2"

 $ git checkout chg3  (chg3.txt 파일 생성 및 저장)  

 $ git add *  

 $ git commit -m "6th file change at chg3"

여기까지 작업 후 해당 작업 폴더를 복제하여 2개의 폴더로 분리

 

(2) Rebase

복제 된 폴더 중 하나의 폴더에서 Rebase 진행  진행 중간 중간 git log를 통해 이력의 변화 설명 후  전체 Rebase가 완료되면 gitk 명령을 활용해 GUI환경에서 확인

1) chg1 branch rebase

 $ git checkout chg1  

 $ git branch -u master  

 $ git rebase master

 $ git checkout master  

 $ git merge chg1

 

 2) chg2 branch rebase

 $ git checkout chg2  

 $ git branch -u master  

 $ git rebase master

 $ git checkout master  

 $ git merge chg2

 

 (3) Merge

복제 된 폴더 중 하나의 폴더에서 Merge 진행  진행 중간 중간 git log를 통해 이력의 변화 설명 후  전체 Merge가 완료되면 gitk 명령을 활용해 GUI환경에서 확인

1) chg1 branch Merge

 $ git checkout master  

 $ git merge chg1

 2) chg2 branch Merge

 $ git merge chg2

 

[Git & Gerrit Home으로 돌아가기]