Git

Git ✅ 협업에서 자주 쓰는 rebase, cherry-pick, stash

jonbeo 2025. 10. 20. 10:25
반응형

 

 

팀 프로젝트에서 Git을 쓰다 보면 단순히 merge만으로는 부족한 경우가 많습니다.
충돌 해결, 특정 커밋만 반영, 임시 저장 등 다양한 상황에서 Git 고급 명령어를 활용해야 원활한 협업이 가능합니다.
이번 포스팅에서는 대표적인 rebase, cherry-pick, stash를 중심으로 정리합니다.


🧠 1. git rebase

브랜치의 기반(base)을 다른 브랜치로 옮겨주는 명령어

📌 예시: feature 브랜치를 최신 main으로 정리하기

 
git checkout feature/login
git rebase main
  • feature 브랜치의 커밋이 main 브랜치 뒤로 이어붙여짐
  • 히스토리가 깔끔해짐 (merge 커밋 불필요)

⚠️ 주의

  • 이미 푸시한 브랜치를 rebase하면 충돌 위험 → 협업 중에는 조심!
  • 로컬에서 정리할 때 주로 사용

🍒 2. git cherry-pick

특정 커밋 하나만 다른 브랜치에 적용할 때 사용

📌 예시: main 브랜치에 특정 커밋만 반영

 
git checkout main
git cherry-pick a1b2c3d
  • a1b2c3d 커밋만 main 브랜치에 가져옴
  • 전체 브랜치 머지 필요 없이 원하는 기능/버그 수정만 반영 가능

활용 상황

  • 긴급 버그 수정 커밋을 배포 브랜치에만 반영할 때
  • 특정 기능만 테스트 브랜치에 추가할 때

📦 3. git stash

현재 작업 중인 내용을 임시 저장해두고, 나중에 다시 꺼내올 수 있음

📌 예시: 코드 수정 중인데 급하게 다른 브랜치로 전환해야 할 때

 
git stash         # 변경사항 임시 저장
git checkout main # 다른 브랜치로 이동
git stash pop     # 다시 불러오기
  • 작업 임시 저장소라고 생각하면 됨
  • 여러 개 저장 가능 → git stash list 확인 가능

🛠️ 4. 기타 유용한 명령어

  • git reset --hard HEAD~1 → 마지막 커밋 되돌리기
  • git revert <커밋ID> → 특정 커밋을 취소하는 새로운 커밋 생성
  • git reflog → 삭제된 커밋 로그까지 확인 가능
  • git bisect → 버그가 발생한 커밋 추적

⚡ 협업 시 팁

  • rebase히스토리 정리용으로 개인 브랜치에서만!
  • cherry-pick특정 커밋 반영할 때만 신중히 사용
  • stash는 자주 쓰지만, 잊어버리면 작업을 날릴 수 있음 → stash list 확인 습관
  • 팀에서는 merge vs rebase 규칙을 미리 합의하는 것이 중요

📝 마무리 정리

  • rebase → 브랜치 히스토리 깔끔하게 정리
  • cherry-pick → 필요한 커밋만 가져오기
  • stash → 임시 저장 후 나중에 복원
  • 협업에서는 팀 규칙상황에 맞게 적절히 선택하는 게 핵심!
반응형