2016-08-03 17 views
1

私のレポでは、私はマスターブランチとバグ修正ブランチを持っていました。私はバグ修正を行い、それをマスターにマージしました。それから、愚かな間違いに狂ったように、私は考えられなかったことをしました。私はgit commit --amendとのマージ後に3文字をマスターに追加しました。私は歴史を書き換えた。それで、私の悔しさには、マスタに影響するのはバグ修正ではなく、だから私が(マスター上で)実行すると、git branch --no-merged私はバグ修正がマージされていないことを知っています。だから、私はバグ修正をチェックアウトし、同じ変更を行います。git diff bugfix masterは何も返しません。そして、マスターからもう一度git branch --no-mergedをチェックします。それでも、バグ修正はマージされません。だから、私はマージされたい2つの同じブランチを持っていますが、私は別のコミットを使いたくありません。どうすればそれらを結合して、gitがマージされているのを見て、git branch --no-mergedはバグ修正を返さないでしょうか?"Merge" 2つの同じブランチ

+2

マージコミットを元に戻し、再度マージしてそこから移動します。私はあなたがいる道が果物を食べるとは思わない(少なくともあなたが食べたいと思う者はいない)。 –

+0

あなたが修正を行った後でさえ、コミットはまだ2つの親を持ち、マージコミットなので、そのバグ修正後には--no-mergedが表示されません。 – DavidN

+0

@DavidNなぜそれが起こったのかわかりません、私はちょうど私に起こったことを記載しています。私はそれを試して再現し、私ができるかどうかを知らせます。 – thesecretmaster

答えて

1

トレイルで迷子になったときに、最も賢明なことは、あなたが紛失していない前の場所にステップを戻すことです。あなたの場合、私はmasterで修正されたマージコミットを取り消し、bugfixで "修正"コミットを破棄します。その後、追加の変更を加えずにマージをやり直してください。

はバグ修正にコミット悪いアンドゥ:

git merge bugfix 

注:

git checkout master  # switch to master 
git reset --hard HEAD~1 # nuke the amended merge commit 

は今、あなたは、マージをやり直すことができます。

git checkout bugfix  # switch to bugfix 
git reset --hard HEAD~1 # nuke the fix commit 

元に戻すには、マスターにコミットマージ:この答えは、あなたはすでに何かをリモコンに押し込んでいません。もしあれば、git revertを使用して履歴を書き換えるのではなく、悪いコミットを元に戻したいでしょう。

関連する問題