오늘은 팀 협업중에 자주 볼 수 있는 문제 git rebase에 대해 간략히 남긴다.
- Feature 브랜치를 다른 브랜치와 통합 :
git rebase를 사용하여 feature 브랜치의 변경사항을 다른 브랜치에 적용할 수 있다.- 커밋 히스토리 정리 :
불필요한 커밋이나 메시지를 수정하거나 합치는 등의 작업을 통해 커밋 히스토리를 깔끔하게 만들 때 git rebase를 사용- 커밋을 순서대로 유지하면서 변경사항을 가져올 때:
git merge는 두 브랜치를 병합하고, 새로운 커밋을 생성하는 반면, git rebase는 변경사항을 순서대로 다른 브랜치에 적용
(* 때때로 git rebase를 사용하여 변경사항을 메인 브랜치에 순차적으로 추가하는 것이 더 선호될 수 있다)- 브랜치가 최신인지 확인하고, 최신 상태로 유지하기 위해:
다른 개발자들이 메인 브랜치에 변경사항을 추가할 경우, 자신의 브랜치를 최신 상태로 유지하기 위해 git rebase를 사용
- 히스토리 변경:
리베이스는 커밋 히스토리를 수정하거나 이동시킴. 이로 인해 더 깔끔하고 선형적인 히스토리가 만들어질 수 있지만, 변경된 히스토리로 인해 추적이 어려워질 수 있다.- 강제 푸시:
리베이스를 사용하면 기존 커밋들이 수정되므로, 이미 원격 저장소에 있는 커밋과 충돌이 발생할 수 있다. 이 경우에는 강제 푸시를 해야 하므로 문제가 발생할 수 있음
팀프로젝트에 꼭 경험하는 rebase 문제는, 가급적 지양하는것이 좋다고 한다.
사실은 pr 날릴 때 마다, 메인이나 dev (배포전 최상단 브랜치)를 항상 최신화 하는게 가장 좋은 방법이라고 생각한다...
하지만, 이번에 팀원 한 분은 계속해서 rebase 증상이 나타나서 알아본 결과
'rebase 관련 설정이 되어 있는것을 발견했다'
- git config --list
- git config --global --list
-> 그래서 false로 설정해줌
내 git config를 확인해본 결과
user.email=ou@@@@thr@gmail.com
user.name=Nic @@@@
개인 정보만 적혀 있음을 확인!
유익한 글 잘 봤습니다, 감사합니다.