13

ちょうど今、私は何かをコミットしてプッシュしました (はい、プッシュの間違いです)。そのため、私は自分の側で発行するように言われgit reset --soft HEAD^ました。これにより、何らかの方法で「元に戻す」コミットが作成され、一度コミットされると、変更がまったく起こらなかったかのようになると考えました。変化の歴史がそこにあるかどうかはまったく気にしません。それは私が想像したことです。

とにかく、それを行った後、もう一度コミットし、プッシュしようとすると、非早送りエラーが発生しました。今、私はリセットで何かを台無しにしたことを知っています.私のツリーとオリジンツリーのラインに沿った何かが今「不一致」ですが、これを修正する方法を考えています. ここで、リセットを発行する前の時点に戻りたいだけなので、他の誰かがプッシュされたコミットを元に戻す正しい方法を推奨できない限り、変更を手動で取り出してからコミットすることで、変更を手動で元に戻すことができます。これは、ログなどから履歴を削除する必要があるという意味ではありません。

4

4 に答える 4

8

あなたの問題を正しく理解していれば、次のことを試すことができます。

(これがあなたの「マスター」ブランチであり、「オリジン」にプッシュしていると仮定しています)

リモコンと同期して、同じ状態にします。

git remote update
git checkout master
git merge origin/master

コミットを元に戻します

git revert HEAD (or where ever the commit you want to revert is now)
git commit -av

リモコンと同期する

git push
于 2010-01-06T22:05:39.920 に答える
5

リセットを発行する前の時間に戻りたいだけです

キャンセルしたいだけの場合git reset --softは、reflogs で以前の HEAD コミット ID を調べることができます。

 $ git reflog
 $ git reset --soft formerCommit

そして、あなたはあなたの準備をすることができますgit revert

于 2010-01-06T22:09:54.257 に答える
0

git revert HEADHEAD でコミットを元に戻す新しいコミットを作成するために使用したいと考えていました。代わりに、HEAD を現在の HEAD の前のコミットに戻しました。

于 2010-01-06T22:06:11.213 に答える