안전한 리베이스의 어두운 예술: IDE와 CLI에서 "onto" 마스터하기
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
개발 툴
대상자
Git을 사용하는 개발자, 특히 리베이스 작업을 수행하는 초보자 및 중급자
난이도: 중간 (기초 Git 지식 필요)
핵심 요약
- 리베이스 작업에서 LHS(좌측)는 수정되며, RHS(우측)는 안전하다 (예:
Rebase feature onto main
→feature
는 수정,main
은 안전) - 안정적인 브랜치(보통
main
)는 항상 RHS에 배치해야 한다 - CLI와 IDE 모두에서 LHS/RHS 규칙이 동일하게 적용된다
섹션별 세부 요약
1. IntelliJ에서 "onto" 개념 이해
- IntelliJ는 명확히 두 브랜치(예:
feature
와main
)를 표시하여 리베이스 작업을 제공 - LHS(좌측): 수정되는 브랜치 (예:
feature
) - RHS(우측): 안전한 기반 브랜치 (예:
main
) - 예시: "Rebase feature onto main" →
feature
수정,main
은 안전
2. CLI에서 리베이스 작업 수행
- CLI 명령어:
```bash
git checkout feature # LHS: 현재 작업 중인 브랜치
git rebase main # RHS: 기반 브랜치
```
- LHS:
feature
브랜치의 커밋이 재생성됨 - RHS:
main
브랜치는 변경되지 않음
3. 안전한 리베이스의 핵심 원칙
- 안정적인 브랜치(예:
main
)는 절대 LHS에 배치하지 않는다 - "Rebase main onto feature"는 위험한 작업 (안정적인
main
이 수정됨) - 기억 강화 팁: "Always have main on RHS" (메인 브랜치는 항상 RHS에 배치)
4. 실무 적용 팁
- IDE와 CLI 모두에서 LHS/RHS 규칙 적용
- 브랜치명 명확하게 확인 (예:
feature
vsmain
) - 리베이스 전에
git log
로 히스토리 확인 후 작업
결론
- 리베이스 작업 시 안정적인 브랜치(예:
main
)는 항상 RHS에 배치하여 안전하게 작업하자. - CLI와 IDE 모두에서 LHS/RHS 규칙을 일관되게 적용하면, 실수를 줄이고 깔끔한 히스토리 관리 가능.
- "Always have main on RHS"를 핵심 원칙으로 기억하고, Git 히스토리가 항상 순수하게 유지되도록 하자.