0. 합치기 위하여 사용되는 방법
Merge : 두 브랜치를 한개의 커밋에 이어서 붙이는 용도로 사용됩니다.
- 브랜치의 사용내역을 남길 필요가 있을 때 사용하는 방식입니다.
Rebase : 브랜치들을 그대로 잘라서 가져옴. 히스토리를 깔끔하게 만들 수 있다는 장점이 존재함.
- 브랜치의 사용내역을 지우고 한 줄로 깔끔하게 정리된 내역을 유지하기 위해서 사용되는 방식입니다.
- 이미 팀원들간에 공유된 커밋들에 대해서는 사용하지 않는게 좋습니다.
1. Marge 사용
main 브랜치로 이동한 후 add-coach 브랜치를 main 브랜치로 합쳐주도록 하겠습니다.
# git merge (합쳐질 브랜치 이름)
git merge add-coach
명령어를 입력한다면 아래와 같이 어떠한 것들이 합쳐졌는지 확인할 수 있습니다. 소스트리로도 확인을 해보겠습니다.
main 브랜치와 add-coach 브랜치가 합쳐지고 Merge branch 'add-coach'라는 새로운 커밋이 생겼습니다. 또한 합쳐진 add-coach는 삭제되지 않은 것을 확인할 수 있습니다.
만약 merge로 병합을 하였는데 병합하기 전으로 되돌아가고 싶다면 reset으로도 되돌아 갈 수 있습니다. 새로운 커밋이 생긴 것이기 때문에 merge 하기 전 해당 브랜치의 마지막 시점으로 reset을 해주면 됩니다.
marge를 이용하여 통합을 시켜주었다면 병합된 브랜치인 add-coach를 지워주겠습니다.
2. rebase 사용
rebase는 marge와는 다르게 옮겨질 브랜치에 위치하고 있어야만 합니다. 그렇기 때문에 main 브랜치에서 new-teams 브랜치로 이동해주도록 하겠습니다.(marge와는 반대 형식)
이후 해당 명령어를 작성해주도록 하겠습니다.
# git rebase (도착하는 브랜치)
git rebase main
이후 소스트리로 확인을 해보도록 하겠습니다.
marge는 브랜치의 내역이 남아있는 것과는 달리 rebase 내역이 완전히 사라지고 새로운 커밋이 생기는 것이 아닌 브랜치의 커밋들 자체들이 옮겨진 것을 확인할 수 있습니다.
하지만 rebase를 사용하고 main 브랜치로 이동을 하게 된다면 main 브랜치가 new-teams 브랜치 보다 뒤쳐져 있기 때문에 옮겨온 new-teams의 브랜치에 속해있는 커밋들은 확인을 할 수 없게 됩니다. 그것을 해결하기 위해서 merge 브랜치를 사용해주어야 합니다.
일단 다시금 main 브랜치로 이동 후 아래 명령어를 사용해주겠습니다.
git merge new-teams
명령어를 사용한 후 다시금 소스트리로 확인을 해본다면 main 브랜치가 new-teams 브랜치까지 올라온 것을 확인할 수 있습니다. 마지막으로 new-teams 브랜치를 지워주면 끝입니다.
'Git & GitHUB' 카테고리의 다른 글
[Git] 충돌 해결 (0) | 2022.07.10 |
---|---|
[Git] Branch 만들기 (0) | 2022.07.08 |
[Git] 과거의 프로젝트로 돌아가기(SourceTree) (0) | 2022.07.01 |
[Git] 과거의 프로젝트로 돌아가기(Revert) (0) | 2022.06.30 |
[Git] 과거의 프로젝트로 돌아가기(Reset) (0) | 2022.06.29 |