문서

인터랙티브 리베이스

인터랙티브 리베이스는 git rebase -i를 시각적 흐름으로 바꿉니다. 드래그로 커밋 큐를 재정렬하고, 커밋을 하나씩 적용하고, 충돌을 시각적으로 해결합니다 — 커맨드라인 불필요.

시작

브랜치 창을 열고 Filter branches... 상자에 입력해 대상 브랜치를 찾은 뒤 마우스 오른쪽 클릭 → Rebase Current Branch onto '{branch}'로 현재 브랜치를 대상 위로 리베이스합니다. 패널은 리베이스 보기로 전환되어 네 단계를 진행합니다:

브랜치 창에서 브랜치 검색 후 대상 위로 리베이스 시작

1. 커밋 큐 편집

대상에 없는, 여러분 브랜치의 커밋이 큐를 이룹니다:

  • 드래그로 재정렬;
  • 각 커밋에 동작 드롭다운: pick(유지) / squash(이전 것에 접기, 메시지 병합) / fixup(접기, 메시지 버림) / edit(멈춰 수정) / drop(버림);
  • 스쿼시·드롭된 커밋은 시각적으로 접힙니다.
리베이스 커밋 큐 — 드래그 재정렬, 커밋별 동작

2. 적용

Start Rebase가 큐를 대상 위에 커밋 단위로 재생합니다. 실시간 진행률 표시줄과 함께. 충돌이 없으면 곧장 완료까지 달립니다. Abort로 언제든 빠져나올 수 있습니다.

3. 충돌(있다면)

적용 중 충돌이 발생하면 충돌 보기로 전환됩니다 — 파일 목록과 네 가지 모드(Merge / Split / Raw / AI)의 병합 편집기. 충돌한 각 헝크가 자기만의 결정(Ours / Theirs / Both …; 충돌 해결 참조)을 받습니다. 모든 파일이 해결되면 Continue로 리베이스를 재개합니다.

충돌 보기 — 헝크별 병합 결정

4. 완료

완료되면 패널이 Branch '{branch}' was rebased onto '{target}'을 확인해 주고 푸시 카드를 보여 줍니다 — 리베이스가 역사를 다시 썼으므로 원격 브랜치를 강제 갱신해야 합니다:

  • Force Push with Lease — 권장: 다른 사람이 푸시하지 않았을 때만 덮어쓰며 평범한 --force는 쓰지 않습니다;
  • Not now — 푸시 건너뜀. 로컬 리베이스는 이미 완료되었습니다.
완료 페이지 — Force Push with Lease 또는 푸시 건너뛰기

리베이스 중에도 세션은 사용 가능합니다. 패널을 닫아도 실행 중인 리베이스는 중단되지 않습니다.