2017-10-16 1 views
2

をに分岐する一連のリベースこのような他のものを建て:私は頻繁に枝のシリーズで終わる並列分岐

A、BおよびCの

のそれぞれについて、プルリクエストと通常
...-(M) 
    | 
    +-A 
     | 
     +-B 
     | 
     +-C 

問題は、Cからのプルリクエストをリクエストすると、ブランチAとBで行われたすべての変更が含まれていることです。

私はそれのように見えることをグラフは、再構成したい:

...-(M) 
    | 
    +-A 
    | 
    +-B 
    | 
    +-C 

しかし、私は「B」または上に「C」 '(M)]のいずれかを再配置しようとするたびに構造残ります同じ。

これを再構成する正しい方法は何でしょうか?

ところで、私はGit関連のすべてのニーズにSourceTreeを使用しますが、必要に応じてコンソールの説明から翻訳して喜んでします。

編集:VonCが提案した解決策は実際には機能しましたが、SourceTreeの組み込みバージョンのGitを使用している間はうまくいきませんでした。ここからポータブル版をダウンロードした後:https://github.com/git-for-windows/git/releases/tag/v2.14.2.windows.3うまくいきました。

答えて

1

を含まないリベースすべて上記のコミットはrebase --ontoコマンドです。 M.上

git checkout B 
git rebase --onto M A B 

注Cまで Bの後にすべてを(Bを除く)(Cを含む)リベース:そのため、それはのgit bashを使用するのが最適であることを意味

git checkout C 
git rebase --onto M B C 

latest Git for WindowsPortableGit-2.14.2.3-64-bit.7z.exeなどの任意の場所に解凍)。これは、 "現在のブランチのトラッキング情報がありません。どのブランチにリベースするかを指定してください。"のような奇妙なバグを避けるでしょう。それはI mentionned hereです。
rebaseはローカル操作であり、リモートブランチには関係しません。

+0

ありがとうございました。私はこの記事の次の記事に似ています。https://makandracards.com/makandra/10173-git-how-to-rebase-your-feature-branch-from-one-branch-to-another しかし、リンクされた例(2つの引数を持つ)とあなたの例(3つの引数を持つ)はともにエラーメッセージを出します: "現在のブランチのトラッキング情報はありません。私はそれが何を意味するのか理解するのに苦労しています。 – Slartibartfast

+0

@Slartibartfast Strange、これにはローカルブランチが必要です。リモートトラッキングブランチは必要ありません。しかし、あなたがする必要がある場合:https://stackoverflow.com/a/32729663/6309 – VonC

+0

@Slartibartfastところで、どのGitバージョンを使用していますか?そして、gitブランチ-vはA、B、Cを表示しますか? – VonC

関連する問題