branch를 나누어 작업한 이후에 결과물(변경 사항)을 합치는 것을 병합(merge)이라 한다.
branch를 통하여 작업 공간을 분리한 이후에 분리된 공간에서의 서로 다른 혹은 각 코드들을 융합한다.
각 branch에서 작업한 내용을 합치는 명령어로는 merge와 rebase가 있다. 두개의 branch를 하나로 합친다는 점에서 동작 방식은 매우 유사하지만 commit history 생성 결과가 달라진다는 것에서 큰 차이가 있으며 사용하는 용도 또한 다르다.
rebase는 해당 작업을 base로 만들기 때문에 협업 프로젝트에서는 신중하게 진행해야 한다.
merge

협업을 위하여 작업 공간을 branch를 통하여 분리한 이후에 작업한 내용을 합치는 명령어이다. rebase와는 다르게 각 branch마다 commit history가 유지된다.
git merge <병합할 branch>
search branch에서 작업한 내용을 main branch로 합치고 싶을 때 main branch로 작업 공간을 전환한 이후에 "git merge search" 명령어를 수행해야 한다.
rebase

현재 branch에서의 commit history(내용)들을 다른 branch에 재배치한다. 즉, commit 기록이 각 branch에서 2개로 나누어 지지 않고 직선형으로 이어진다. 예를 들어 위 그림에서처럼 search branch에서 구현한 기능들에 대한 commit 내용들을 main branch에 유지하고 싶을 때 사용할 수 있다.
git rebase <병합할 branch>
search branch에 작업한 내용들을 main branch의 commit 기록에 유지하고 싶을 때에는 search branch로 작업 공간을 전환한 이후에 "git rebase main" 명령어를 수행한다.
'Git' 카테고리의 다른 글
| [Git] Commit 수정 및 복구 (revert & reset) (0) | 2024.11.04 |
|---|---|
| [Git] Merge Conflict specification (0) | 2024.11.03 |
| [Git] branch 생성, 전환, 삭제 (branch, checkout & switch & restore) (0) | 2024.11.03 |
| [Git] Remote repository의 최신 정보 다운로드 (pull & fetch) (1) | 2024.11.03 |
| [Git] Remote repository 업로드 (push) (1) | 2024.11.02 |