機能ブランチの1つ(「feedback_tab」)にいくつかの変更をコミットし、「master」をチェックアウトしてそこにマージしました。実際、それらを「開発」ブランチにマージするつもりでした。
今、マスターは17のコミットで「Origin/master」(そのリモート)よりも先にあります。マスターを誤ってマージする前と同じ状態に戻すにはどうすればよいですか?私はgit revert
およびgit reset
このようなもの。
Gitログを調べましたが、feedback_tabをmasterにマージするためのエントリがありません。私はそれがトップエントリーになると思っていただろうか?
少し混乱しています:/どんな助けも歓迎します!最大
git reset --hard HEAD~17
は、マスターのヘッドより17コミット先に戻ります。 git rebase -i HEAD~17
は、おそらく余分なコミットも削除します。
プッシュされなかったマージを取り消すには:
git reset --merge ORIG_HEAD
マージ中に競合が発生した場合、マージを取り消す最善の方法は次のとおりです。
git merge --abort
git reset から取得
Undo a merge or pull
$ git pull <1>
Auto-merging nitfol
CONFLICT (content): Merge conflict in nitfol
Automatic merge failed; fix conflicts and then commit the result.
$ git reset --hard <2>
$ git pull . topic/branch <3>
Updating from 41223... to 13134...
Fast-forward
$ git reset --hard ORIG_HEAD <4>
これは確実に機能します!
git reset --hard HEAD~1
git init
最初のものは最近行った変更を元に戻し(マージ)、2番目はリポジトリを最新に初期化します(したがって、Originで最新のものに早送りします)
私はもう試した
git reset --merge
しかし、それはトリックをしませんでした。