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 → 임시 저장 후 나중에 복원
- 협업에서는 팀 규칙과 상황에 맞게 적절히 선택하는 게 핵심!
반응형