2017-05-02 9 views
0

からコミット対応からブランチのコミットの変更:私はメインラインにc4からmy branchと呼ばれる新しいブランチを作成し、コミット追加私はこのような何かを見てgitのレポ持っていた別のブランチ

c1->c2->c3->c4 (mainline) 
       \ 
       \ c6->c7->c8 (other branch) 

c5~my branch。今私のgit repoはこのように見えます。 mainline

   c5 (my branch) 
      /
c1->c2->c3->c4/ (mainline) 
       \ 
       \ c6->c7->c8 (other branch) 

c4は、コードレビューにあったと私は提案を得た後mainlinec4を変更する必要がありました。ただし、変更はc4my branchには表示されません。 c4mainlineからc4に変更する方法はありますか?my branch

編集:最終的には、my branchmainlineにマージし、もう一度c5をプッシュする必要があります。

答えて

2

、新しいコミットハッシュを作成しました。それはc4から再起動してmy branchの変化に適用することであろう修正する

方法:

git checkout mainline 
git checkout <hash-of-c4>  # go to updated c4 
git checkout -b my-branch-new # create branch 
git cherry-pick <hash-of-c5> # apply c5 

my-branch-newc4のとc5


0

c5my branchです。

my branchの間にgit rebase -i mainbranchを実行してから、結果をコミットして、後ですべてのコミットをmainlineにすることができます。これにより、mainbranchに加えた変更よりも先にc5が追加されます。

git merge mainlinemy branchから実行すると、新しいマージコミットが作成されますが、これは常に望ましいとは限りません。

第3のオプションは、mainbranchからmy branchへのハッシュを持つコミットをチェリーピックすることです。

を参照してください:あなたはmainlineブランチにc4をコミット変更する場合https://git-scm.com/docs/git-rebase

+0

の両方の変更が必要ありませんでした'mainbranch'の追加コミット。その 'c4'が改訂されました。 rebaseはまだ動作しますか? –

+0

ああ、私は誤解しています。はい、上記のコメントを参照してください。その場合、チェリーピックが適切なアプローチです。上記のshambaからの答えを見てください – inostia

関連する問題