ドキュメント

インタラクティブリベース

インタラクティブリベースは git rebase -i を視覚的なフローに変えます。ドラッグでコミットキューを並べ替え、コミットを 1 つずつ適用し、競合を視覚的に解決 — コマンドラインは不要です。

開始

ブランチペインを開き、Filter branches... ボックスに入力して対象ブランチを見つけ、右クリック → Rebase Current Branch onto '{branch}' で現在のブランチを対象にリベースします。パネルはリベースビューに切り替わり、4 つのフェーズを進みます:

ブランチペインでのブランチ検索と、対象へのリベース開始

1. コミットキューの編集

対象にない、あなたのブランチ上のコミットがキューを構成します:

  • ドラッグで並べ替え;
  • 各コミットにアクションドロップダウン: pick(保持)/ squash(前のに折り込み、メッセージ統合)/ fixup(折り込み、メッセージ破棄)/ edit(停止して amend)/ drop(破棄);
  • スカッシュ・ドロップされたコミットは視覚的に折りたたまれます。
リベースのコミットキュー — ドラッグで並べ替え、コミットごとのアクション

2. 適用

Start Rebase がキューを対象にコミットごとに再生します。ライブの進行状況バー付き。競合がなければそのまま完了まで走ります。Abort でいつでも中止できます。

3. 競合(あれば)

適用中の競合は競合ビューに切り替えます — ファイルリストと 4 モード(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 かプッシュのスキップ

リベース中もセッションは使用可能です。パネルを閉じても実行中のリベースは中断されません。