서로 다른 브랜치를 합치는 두 방식
- merge : 두 브랜치를 한 커밋에 이어붙입니다.
- 브랜치 사용내역을 남길 필요가 있을 때 적합한 방식입니다.
- 다른 형태의 merge에 대해서도 이후 다루게 될 것입니다.
- rebase : 브랜치를 다른 브랜치에 이어붙입니다.
- 한 줄로 깔끔히 정리된 내역을 유지하기 원할 때 적합합니다.
- 이미 팀원과 공유된 커밋들에 대해서는 사용하지 않는 것이 좋습니다.
차이: 히스토리(내역)
merge: 브랜치들을 냅두고 끝에다 모아서 병합하여 히스토리가 남고 (브랜치의 사용내역들을 남겨둘 필요가 있을때)
rebase: 곁가지만 잘라다 끝에다 모아서 병합 (히스토리를 깔끔하게 만드는게 중요할때)
- 초기 branch정보 (origin/main은 github 미리 연동해놓은 것)
- 브랜치 정보
1) main
2) add-coach
3) new-teams
- 작업방식
1) main에 add-coach merge
2) main에 new-teams rebase
- 순서정리
1) merge
switch main
> merge add-coach
> delete add-coach ( main 브랜치에 add-coach소스를 merge하고 add-coach삭제)
2) rebase
switch new-teams
> rebase main
> switch main
> merge new-teams
> delete new-teams
( main 브랜치에 new-teams소스를 rebase하고 new-teams소스를 merge하고 new-teams삭제)
===> 심화과정에서 추가 재정리필요
1. merge로 합치기
- main branch로 switch 해논 상태에서
git merge add-coach
결과)
💡 merge는 reset으로 되돌리기 가능하다
- merge도 하나의 커밋
- merge하기 전 해당 브랜치의 마지막 시점으로
git reset --hard (돌아갈 커밋 해시정보)
결과)
병합된 브랜치는 삭제
git branch -d add-coach
결과)
2. rebase로 합치기
new-teams 브랜치를 main 브랜치로 rebase
- new-teams 브랜치로 이동
- 🛑 merge때와는 반대!
git rebase main
결과)
rebase를 했을 때, main 위치가 new-teams의 마지막 커밋까지 반영되지 않은 상태로
main branch로 이동 후, new-teams것을 merge해주어야 한다.
이유는 심화과정으로 들어가서 추가 작업
3. rebase로 합친것을 나머지것을 main branch에 merge
git merge new-teams
결과)
병합된 브랜치는 삭제
git branch -d new-teams
결과)
'Git' 카테고리의 다른 글
[Git] Git의 3가지 공간 Working directory / Staging Area / Repository (0) | 2023.08.15 |
---|---|
[Git] branch merge/rebase 충돌 해결하기 (0) | 2023.08.10 |
[Git] Git Branch 생성/이동/삭제 (0) | 2023.08.09 |
[Git] Git Revert 충돌 GUI에서 해결하는 방법 (0) | 2023.08.09 |
[Git] Git에서 과거로 돌아가는 두 방식 - revert / reset (0) | 2023.08.09 |