인프런 - 제대로 파는 Git & Github - by 얄코
지난 강의까지 실습을 모두 진행했다면, git의 시점에서 지금 내 프로젝트는
이런 모습을 하고 있다. 프로젝트의 메인 줄기는 main브랜치에서 진행되고 나머지 두 곳에서 다른 실험적인 시도를 해 보고 있다. 이 두 브랜치(add-coach, new-teams)에서 진행한 내용들이 모두 채택이 돼서 이제 이들을 main 브랜치로 가져올꺼야
서로 다른 브랜치를 합치는 방식으로는 두 가지가 존재한다.
두 브랜치를 한 커밋에 이어 붙인다.
브랜치를 다른 브랜치에 이어 붙인다.
브랜치의 마디, 커밋들을 대상 브랜치로 옮겨붙이는 것!! 그러면 마치 메인(main)브랜치에다가 옮겨붙일 브랜치의 커밋들을 하나하나 추가한 것처럼 되는거야.
merge를 하는거나 rebase를 하는거나 결과물은 똑같다. 결국 모든 브랜치에서의 작업 결과물이 전부 main 브랜치에 모이는 거야.
차이가 있다면 우선 히스토리(내역)에 있다.
rebase를 한 뒤의 히스토리는 깔끔하게 한 줄로 정리되지만
merge는 브랜치의 흔적을 남기게 된다.
그럼 결국 둘 중 무엇을 사용하느냐?
진행하는 프로젝트의 성격에 따라 브랜치의 사용 내역들을 남겨둘 필요가 있다면 merge를, 그보다는 히스토리를 깔끔하게 만드는게 중요하다면 rebase가 더 적절할 것이다.
❤ 하지만 협업에 있어서 이미 팀원들간에 공유된 커밋들에 대해서 rebase를 사용하지 않는게 좋다.
있던 것을 없대다가 다른 브랜치에 이어 붙이면 협업하는 중에는 당황스러울 것..