(4)-3. Merge와 Rebase
[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