3

私はgitの初心者であり、最後にコミットしたときにすべてを元に戻そうとしているときにいくつかの問題があります。すべてを元に戻したい変更を失ってもかまいません。私はこれを試しました:

git revert b78da61000bc049133f4a5f7df6ddb3b6407454f

しかし、私は得ています

error: Your local changes to the following files would be overwritten by merge. 
Please, commit your changes or stash them before you can merge.
Aborting

これらの新しい変更は明らかに機能せず、削除したいだけなので、コミットしたくありません。助言がありますか?

4

2 に答える 2

6

git revertは、指定されたコミットで行われた変更を「元に戻す」新しいコミットを作成することを意味します。

あなたが欲しい:

git reset --hard <commit>

(これにより、コミットされていない変更が作業ディレクトリから削除され、現在のブランチが指定されたコミットに設定されます)

リセットすると履歴が変更されることに注意してください。したがって、すでにそれらのコミットをプッシュしている場合は、それらをリセットして削除することはお勧めしません。新しい履歴を(強制的に)プッシュすると、他のユーザーは変更を新しい履歴にリベースする必要があるためです。

mangit-resetResetDemystifiedを参照してください

于 2012-08-20T14:03:16.497 に答える
1

git reset --hard HEAD

作業コピーのすべての変更を削除したいだけの場合は、次の方法で削除できます。

git reset --hard HEAD

HEADは、現在のブランチの最後のコミットです(ブランチにいると仮定します)

gitrevertはあなたが望むものではありません

git revertは、実行しようとしていることを実行しません。コミットを元に戻すために使用されます(既存のコミットとは正反対のコミットを行うため、履歴を保持しながら、最終的な効果でコミットを削除できます)。

于 2012-08-20T14:07:50.600 に答える