ブランチの一部だけをリベースする
質問
2つのブランチ(とmaster)があります。ブランチ 2 はブランチ 1 に基づいており、ブランチ 1 は master に基づいています。私はレビューのためにブランチ1を提出し、それはいくつかの変更を持っていた、私はそれらの変更のいくつかを履歴にリベースし、結果をmasterにマージしました。
今度はブランチ 2 を master の上にリベースして、レビューとマージの準備をする必要があります。
問題は、ブランチ 2 にはまだブランチ 1 のオリジナルのコミットが残っていて、それがもう存在しないため git が混乱してしまうことです。rebase -i でブランチ 1 の元のコミットを削除しようとしましたが、ブランチ 2 のコミットは master-before-branch-1 の上に置かれません。
私が行う必要があるのは、ブランチ2を取り、いくつかのコミットを削除し、単一の操作でmasterの上に残りのコミットだけをリベースすることです。しかし、私はこの2つの操作を2つの異なるステップで行う方法しか知りません。
私のブランチの一部を別のブランチにリベースし、私が指定したもの(例えば HEAD~2 から)以外の共通の先祖に属さないすべてのコミットを削除するにはどうしたらよいでしょうか。
現在の状態がこちらです。
master new branch 1
- - - - - - - - - - - | - - - - - - - - -
\
\ branch 1
\ _ _ _ _ _ _ _
\
\ branch 2
\ _ _ _ _ _ _ _
最終的にどうしたいのか
master new branch 1
- - - - - - - | - - - - - - - - - -
\
\
\
\ branch 2
- - - - - - - - -
どのように解決するのですか?
解決方法は、思ったよりずっと簡単です。それは、あなたが供給することができることが判明した
-i
を指定できることがわかりました (私は履歴を変更するためにブランチを自分自身にリベースするためだけのものだと考えていました)。そこで私は単純に
git rebase -i master
を実行し、それらの余分なコミットを削除しました。
関連
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] まだプッシュされていない Git マージを元に戻す
-
[解決済み] Gitブランチをmasterにマージする最も良い(そして最も安全な)方法は何ですか?
-
[解決済み] 2つのリビジョン間でどのファイルが変更されたかを表示する
-
[解決済み] リモートにないトラッキングブランチを削除
-
[解決済み] Git で別のブランチからブランチを作成する
-
[解決済み] Gitによるhotfixブランチのfeatureブランチへのマージ
-
[解決済み】Featureブランチのリベースの後、Gitプッシュが拒否される。
-
[解決済み】ローカルのGitブランチの名前を変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
git commit コマンドで追跡した新規ファイルをコミットすると、プロンプト *** Please tell me who you are が表示されます。
-
git pushで "Updates were rejected because your current branch is behind "というエラーが報告される。
-
Git エラー: ヒント: リモートにあなたが持っていない作業が含まれているため、更新が拒否されました ヒント: あなたが持っていない作業です。
-
[解決済み] git で特定のコミットを別のブランチに移動させるには?
-
[解決済み] JenkinsのGitプラグイン。特定のタグをビルドするには?
-
[解決済み] 単一のgitコミットに対して設定されたユーザーを上書きする
-
[解決済み] 単一ファイルのマージをやり直す
-
[解決済み] stash@{1}は曖昧?
-
[解決済み] 別のユーザーでコードをコミットするにはどうすればよいですか?
-
[解決済み] Git Repo から既存のファイルを削除する