85

文脈で:

git revert HEAD~2 myFile
fatal: bad revision '/Users/rose/gitTest/myFile'

HEAD〜2が存在すると確信しています。

編集琥珀は正しいです。resetの代わりに使用するつもりでしrevertた。

4

9 に答える 9

86

特定のコミットで単一のファイルをその状態に戻すだけの場合は、実際には次のcheckoutコマンドを使用します。

git checkout HEAD~2 myFile

このコマンドは、コミット全体を元に戻すために使用されます(またrevertそのコミットに戻ることはありません。実際には、そのコミットによって行われた変更を元に戻すだけです。指定したコミットの後に別のコミットがある場合、後のコミットは元に戻されません。 )。

于 2013-01-27T18:43:06.423 に答える
20

IntelliJでこのエラーが発生しましたが、これらの回答はどれも役に立ちませんでした。これが私がそれを解決した方法です。

どういうわけか私のサブモジュールの1つが.gitディレクトリを追加しました。削除した後、すべてのgit機能が返されました。

于 2016-05-25T02:48:48.563 に答える
8

git revertファイル名パラメータを取りません。欲しいgit checkoutですか?

于 2013-01-27T18:43:16.107 に答える
6

サブモジュールやサブツリーを適切に使用せずに、別のディレクトリ内にgitディレクトリがあったため、Idea / Webstormで「致命的:不正なリビジョン」が発生しました。

.git私はdirsをチェックしました:

find ./ -name '.git' -print
于 2017-01-23T10:06:33.530 に答える
4

Gitrevertはコミットのみを受け入れます

ドキュメントから:

1つ以上の既存のコミットが与えられた場合、関連するパッチによって導入された変更を元に戻します...

myFilegit revertファイルパスを受け入れないため、コミットとして解釈されます。コミットするだけ

以前のコミットと一致するように1つのファイルを変更します

以前のコミットと一致するように1つのファイルを変更するには、次を使用しますgit checkout

git checkout HEAD~2 myFile
于 2013-01-27T18:45:42.153 に答える
1

Intellijでも同様の問題が発生しました。問題は、Gitから実際にファイルを削除せずに、誰かがIntellijで比較しようとしているファイルを.gitignoreに追加したことでした。

于 2018-06-20T16:16:38.930 に答える
0

コミットを削除したい場合は、gitrebaseコマンドを使用する必要があるかもしれません

git rebase -i HEAD〜2

最後の2つのコミットメッセージが表示されます。コミットメッセージを削除してそのファイルを保存すると、削除されたコミットは自動的に消えます...

于 2013-01-28T06:18:02.713 に答える
0

なぜmyFileそこに指定するのですか?

Git revertは、指定したコミットを元に戻します。

git revert HEAD~2

HEAD~2コミットを元に戻します

git revert HEAD~2 myfile

HEAD~2ANDを元に戻しますmyFile

私が取るmyFileのはあなたが元に戻したいファイルですか?その場合は使用

git checkout HEAD~2 -- myFile

于 2013-01-27T18:44:23.023 に答える
0

私の場合、問題のファイル(コミットハッシュが正しくない)が実際にGitに追加されていないという一貫性のない状態がありました。これは、IntelliJの状態と何らかの形で衝突しました。コマンドラインでgitを使用してファイルを手動で追加すると、問題が修正されました。

于 2018-07-10T11:52:16.960 に答える