107

私が実行した手順:

私は2つのブランチbranch1とbranch2を持っています.

$git branch --Initial state
$branch1

$git checkout branch2
$git pull origin branch1 --Step1

私は競合を解決し、

$git commit -m "Merge resolved"

それから

$git checkout branch1
$git merge branch2
$git push origin branch1

ステップ 1 にいる間に、自動マージによって一部のコードが削除され、変更コードがプッシュされたことに気付きました。変更を元に戻すために、初期状態に戻りたいと考えています。すぐに助けが必要ですか?

4

5 に答える 5

124

公式ガイドに従ってマージを元に戻すことができますが、マージされたコミットがまだターゲット ブランチにあるという誤った認識が Git に残ります。

基本的に、次のことを行う必要があります。

git revert -m 1 (Commit id of the merge commit)
于 2012-09-23T17:28:04.770 に答える
48

git reflog <branch>を使用して、マージ前のブランチの場所を見つけgit reset --hard <commit number>、古いリビジョンを復元してみてください。

reflog はブランチの古い状態を表示するので、好きな変更セットに戻すことができます。

git reset を使用するときは、正しいブランチにいることを確認してください

リモート リポジトリの履歴を変更するには、 を実行できますがgit push -f、他のユーザーが既に変更をダウンロードしてプッシュしている可能性があるため、これはお勧めできません。

于 2012-09-21T16:33:19.883 に答える