앞서 진행했던 작업들을 완료한 시점에서 main과 branch의 모습은 위와 같다.
add-coach와 new-teams에서 작업한 내용들을 main branch로 가져와볼 것이다.
add-coach는 Merge하고, new-teams는 rebase를 해보도록 하자.
1) Merge
Merge는 한 커밋에 이어 붙이는 작업이다. 새롭게 생기는 노란색 부분에는 원래 브랜치와 병합될 브랜치의 모든 변화들이 한 곳에 담기게 된다. 파란색 메인 브랜치에다가 초록색에서 작업했던 세 커밋의 변화들을 한꺼번에 적용시키는 것이다.
- Branch의 사용내역을 남길 필요가 있을 때 적합한 방식!
- 다른 형태의 merge는 이후에 다시 공부해볼 것
git merge (합치고 싶은 branch)
2) rebase
rebase는 브랜치를 다른 브랜치에 이어 붙이는 것이다. 브랜치의 마디, 커밋들을 대상 브랜치로 옮겨서 붙이는 것이다. 메인 브랜치에다가 new-teams 브랜치를 하나하나 붙이는 것이다.
- 한 줄로 깔끔히 정리된 내역을 유지하기를 원할 때 적합하다.
- 이미 팀원과 공유된 커밋들에 대해서는 rebase를 사용하지 않아야한다.
git rebase main
둘의 차이는 히스토리 내역이다. rebase한 뒤의 히스토리는 한 줄로 깔끔하게 정리되는데, merge는 브랜치의 흔적을 남긴다. rebase는 곁가지를 다 잘라버리는 것임! 진행하는 프로젝트의 성격에 따라 브랜치의 사용내역을 남겨둘 필요가 있으면 merge를! 그보다 히스토리를 깔끔하게 만들어야한다면 rebase가 더 적절하다.
1. Merge 실습해보기
main으로 합칠것이기에 main으로 이동한 후
git merge add-coach
merge는 reset으로 되돌리기가 가능하다!
이 커밋까지 현재 브랜치를 초기화시켜주자~
이후 add-coach는 삭제시키고, new-teams를 rebase해보자
rebase를 할 때는 main이 아닌 rebase할 브랜치에서 진행해야한다.
git switch new-teams
git rebase main
그런데 확인해보니, main 브랜치가 뒤쳐져 있는 상황이 발생했다. 이는 main 브랜치로 이동한 후 아래 명령어를 통해서 new-teams의 시점으로 fast-forward 해주면된다.
git merge new-teams
끄읕~
출처: 얄코 깃허브
'출입금지!! 개인공부방 > Git' 카테고리의 다른 글
GitHub는 무엇일까? (0) | 2023.08.03 |
---|---|
(git) 브랜치 충돌 해결하는 방법 (0) | 2023.08.03 |
(git) branch 만들어보기 (0) | 2023.08.02 |
(git) 버전 되돌리기 (0) | 2023.08.02 |
(git) 프로젝트 변경사항을 버전에 담기 (0) | 2023.08.02 |