2

Gitのファイルを以前のコミットに戻したい。このファイルは私の.gitignoreファイルによって無視されます。最近のコミットで、誤って強制的にコミットしました。

この質問は、特定のファイルを元に戻す方法に答えます。Gitを使用して特定のファイルを特定のリビジョンにリセットまたは元に戻しますか?

ランニング:

git checkout 234234234b234234234c123424 build/includes/initialize.php

エラー:

error: pathspec 'build/includes/initialize.php' did not match any file(s) known to git.

何か案は?

4

2 に答える 2

2

間違ったコミットまたは間違ったパスを指定している必要があります。

$ git 初期化
/.../.git/ で空の Git リポジトリを初期化しました
$ echo test.txt > .gitignore
$ git add .gitignore
[マスター (ルートコミット) 6ed8815] コミット 1
 1 ファイル変更、1 挿入(+)
 作成モード 100644 .gitignore
$ git commit -m "コミット 1"
$ echo 'バージョン 1' > test.txt
$ git add test.txt
次のパスは、.gitignore ファイルの 1 つによって無視されます。
test.txt
本当に追加したい場合は -f を使用してください。
致命的: ファイルが追加されていません
$ git add -f test.txt
$ git commit -m "コミット 2"
[マスター b23a130] コミット 2
 1 ファイル変更、1 挿入(+)
 作成モード 100644 test.txt
$ echo 'バージョン 2' > test.txt
$ git add test.txt
$ git commit -m "コミット 3"
[マスター 60c1f24] コミット 3
 1ファイル変更、1挿入(+)、1削除(-)
$ cat test.txt
バージョン 2
$ git チェックアウト b23a130 test.txt
$ cat test.txt
バージョン 1

間違ったコミットを入力すると、次のエラー メッセージが表示されます。

$ git チェックアウト 6ed8815 test.txt
エラー: pathspec 'test.txt' は、git が認識しているファイルと一致しませんでした。

間違ったパス名を入力すると、次のエラー メッセージも表示されます。

$ git checkout b23a130 other.txt
エラー: pathspec 'other.txt' は、git が認識しているファイルと一致しませんでした。
于 2013-03-15T01:15:17.633 に答える
0

エラーメッセージ:

error: pathspec 'build/includes/initialize.php' did not match any file(s) known to git

ファイルを含むリポジトリ内の正しいディレクトリにいないbuild/includes/initialize.phpか、そのファイルbuild/includes/initialize.phpが実際にはリポジトリの履歴のどこにも存在しないことを意味します。

実行git log -- build/includes/initialize.phpして、このファイルが変更されたコミット ログを確認できることを確認できます (ファイルが現在削除されている場合でも)。出力が返されない場合は、間違ったディレクトリにいることが確認されます。

ところで、ファイルを git に追加すると、git は、ファイルが にリストされているかどうかに関係なく、ファイルへの変更を自動的に追跡します.gitignore。つまり、以降の追加では、を指定する必要がなくなりました-f

于 2013-03-15T01:38:44.257 に答える