Git 대화형 Rebase는 브랜치 히스토리에서 커밋을 선택적으로 편집, 삭제 또는 재정렬할 수 있는 고급 Rebase 형식입니다. 이는 커밋 메시지를 정리하거나 관련 커밋을 결합하거나 불필요한 변경 사항을 제거하는 데 유용할 수 있습니다. 대화형 Rebase는 깨끗하고 조직적인 Git 기록을 유지하기 위한 강력한 도구가 될 수 있습니다.
Interactive Rebase를 수행하려면 먼저 현재 HEAD가 Rebase하려는 브랜치를 체크 아웃 했는지 확인해야합니다. 그런 다음 다음 명령을 사용합니다.
git rebase -i <new-base>
여기서 <new-base>
는 브랜치의 새 기반으로 설정하려는 커밋입니다. 이렇게 하면 브랜치 기록의 모든 커밋 목록이 있는 텍스트 편집기가 열립니다.
각 커밋에는 pick
, edit
, squash
, fixup
등과 같은 연관된 작업이 있습니다. 작업을 편집하여 필요에 따라 커밋을 선택적으로 제거, 재정렬 또는 결합할 수 있습니다. 필요한 사항을 변경했으면 텍스트 편집기를 저장하고 종료합니다.
정리하거나 결합할 수 있는 여러 커밋이 있는 Feature 브랜치가 있다고 가정해 보겠습니다. 이렇게 하려면 먼저 Feature 브랜치로 전환하고 다음 명령을 사용하여 대화형 Rebase를 시작합니다.
git rebase -i main
이렇게 하면 브랜치 기록의 모든 커밋 목록이 있는 텍스트 편집기가 열립니다. 작업을 편집하여 필요에 따라 커밋을 선택적으로 제거, 재정렬 또는 결합할 수 있습니다. 예를 들어 두 번째 커밋의 작업을 'squash'로 변경하여 두 커밋을 결합할 수 있습니다. 그러면 해당 커밋의 변경 사항이 이전 커밋과 결합됩니다.
필요한 사항을 변경했으면 텍스트 편집기를 저장하고 종료합니다. 그러면 변경 사항으로 브랜치 기록이 다시 작성됩니다.
- Interactive rebase는 깨끗하고 조직적인 Git 기록을 유지 관리하는 강력한 도구가 될 수 있지만 주의해서 사용해야 합니다.
- 공유 브랜치의 커밋 기록을 변경하면 다른 팀원에게 혼란과 문제가 발생할 수 있습니다.
- 워크플로에 통합하기 전에 대화식 Rebase 사용의 잠재적인 위험과 이점을 이해하는 것이 중요합니다.