[TIL]2023.07.20 팀프로젝트git rebase 🤮

Nick·2023년 7월 20일
0

TIL: 오늘을 돌아보자

목록 보기
51/95
post-thumbnail
post-custom-banner

오늘은 팀 협업중에 자주 볼 수 있는 문제 git rebase에 대해 간략히 남긴다.

rebase 넌 뭐야?

  • Feature 브랜치를 다른 브랜치와 통합 :
    git rebase를 사용하여 feature 브랜치의 변경사항을 다른 브랜치에 적용할 수 있다.
  • 커밋 히스토리 정리 :
    불필요한 커밋이나 메시지를 수정하거나 합치는 등의 작업을 통해 커밋 히스토리를 깔끔하게 만들 때 git rebase를 사용
  • 커밋을 순서대로 유지하면서 변경사항을 가져올 때:
    git merge는 두 브랜치를 병합하고, 새로운 커밋을 생성하는 반면, git rebase는 변경사항을 순서대로 다른 브랜치에 적용
    (* 때때로 git rebase를 사용하여 변경사항을 메인 브랜치에 순차적으로 추가하는 것이 더 선호될 수 있다)
  • 브랜치가 최신인지 확인하고, 최신 상태로 유지하기 위해:
    다른 개발자들이 메인 브랜치에 변경사항을 추가할 경우, 자신의 브랜치를 최신 상태로 유지하기 위해 git rebase를 사용

rebase 단점

  • 히스토리 변경:
    리베이스는 커밋 히스토리를 수정하거나 이동시킴. 이로 인해 더 깔끔하고 선형적인 히스토리가 만들어질 수 있지만, 변경된 히스토리로 인해 추적이 어려워질 수 있다.
  • 강제 푸시:
    리베이스를 사용하면 기존 커밋들이 수정되므로, 이미 원격 저장소에 있는 커밋과 충돌이 발생할 수 있다. 이 경우에는 강제 푸시를 해야 하므로 문제가 발생할 수 있음

rebase 경험과 대처

팀프로젝트에 꼭 경험하는 rebase 문제는, 가급적 지양하는것이 좋다고 한다.
사실은 pr 날릴 때 마다, 메인이나 dev (배포전 최상단 브랜치)를 항상 최신화 하는게 가장 좋은 방법이라고 생각한다...
하지만, 이번에 팀원 한 분은 계속해서 rebase 증상이 나타나서 알아본 결과
'rebase 관련 설정이 되어 있는것을 발견했다'

터미널에서 git 설정 보는 방법

  1. git config --list
  2. git config --global --list

팀원 git config

  • [pull] rebase = true 일경우 pull 마다 rebase 설정이 되어 애먹었다

-> 그래서 false로 설정해줌

내 git config를 확인해본 결과

user.email=ou@@@@thr@gmail.com
user.name=Nic @@@@

개인 정보만 적혀 있음을 확인!

profile
배우고 도전하는것을 멈추지 않는 개발자 입니다.
post-custom-banner

1개의 댓글

comment-user-thumbnail
2023년 7월 20일

유익한 글 잘 봤습니다, 감사합니다.

답글 달기