ブランチをリベースする
リベースすると、ブランチのコミットが別のブランチの上にリプレイされるため、履歴は git rebase のように直線のままになります。コミットは新しい ID を取得します。 GitTree は古いブランチを refs/ogt/trash の下に保持し、Undo はそれを戻します。
無料更新されました
GitTree で動作します 無料: サインインすると、すべてのローカル Git 機能が利用できます。
始める前に
feature/searchなど、移動するブランチを確認します。- 自分だけが作業するブランチを優先します。リベースすると、他の人がすでに持っている可能性のあるコミットが書き換えられます。
どこで見つけられますか
- リベースするブランチのラベルを右クリックします: Rebase … onto …。
- 任意のコミットを右クリックします: Rebase … onto そのコミット。
- ブランチ ラベルを他のブランチにドラッグし、リベースを選択します。
| アクション | macOS | WindowsとLinux |
|---|---|---|
| Undo リベース | ⌘Z | Ctrl+Z |
ステップ
オプションを確認してください
確認では、各コミットが新しい ID で再生され、古いブランチが保持されることが示されています。 Options for this rebase では、ローカルの変更を隠して元に戻し、これらのコミットを指すブランチを移動できます。
リベース
Rebase …を押します。実行中、バナーには Rebasing … onto …, step … of … が表示されます。
期待される結果
ブランチは他のブランチの先端から始まり、その上の直線にコミットします。すでにリモート上にある場合は、リース付きの強制プッシュでプッシュします。
ステップが競合する場合
- Resolve は競合したファイルを開きます。それらが解決されると、Continue は次のステップに進みます。
- Skip は競合するコミットを削除し、続行します。
- Abort… は停止し、ブランチを元の状態に戻します。
何か問題が発生した場合
ローカル変更が原因でリベースを開始できません
リベース オプションでローカル変更のスタッシングをオンにするか、最初にコミットまたはスタッシュします (stashes)。
リベース後にプッシュが拒否される
リモートには古いコミットがまだ残っています。 Force Push (With Lease)… を使用します。その間に他の誰かがプッシュした場合は拒否されます (fetch, pull and Push)。
質問
リベース中にコミットをスカッシュまたは並べ替えるにはどうすればよいですか?
インタラクティブ リベース を使用します。コミットごとに、選択、言い換え、編集、潰し、修正または削除するかどうかを選択し、ドラッグして並べ替えます。
