ローカルで変更したと思われる2つのファイルがあるリポジトリがあります。
だから私はこれで立ち往生しています:
$ git status
# On branch master
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: dir1/foo.aspx
# modified: dir2/foo.aspx
#
no changes added to commit (use "git add" and/or "git commit -a")
Doinggit diff
は、ファイルの内容全体が変更されたと言っていますが、それは真実ではないように見えます(diffが見落とすように見える一般的な行範囲があるようです)。
興味深いことに、これらのファイルをローカルで変更したことを覚えていません。このリポジトリは、1つのリモートリポジトリ(プライベート、GitHub.com、FWIW)で使用されます。
何を試しても、これらのローカルな変更を破棄することはできません。私はすべてを試しました:
$ git checkout -- .
$ git checkout -f
$ git checkout -- dir1/checkout_receipt.aspx
$ git reset --hard HEAD
$ git stash save --keep-index && git stash drop
$ git checkout-index -a -f
言い換えれば、Gitでステージングされていない変更を破棄するにはどうすればよいですか?で説明されているすべてを試しました。プラスもっと。ただし、2つのファイルは「変更されたがコミットされていない」としてスタックしたままになります。
一体何が原因で、2つのファイルがこのようにスタックし、一見「元に戻せない」ように見えるのでしょうか。
PS私がすでに試したコマンドを示している上記のリストで、git revert
私が意図したときに誤って書いたgit checkout
。申し訳ありませんが、試してみるべきだと答えてくれた皆さんに感謝しますcheckout
。質問を編集して修正しました。私は間違いなくすでに試しcheckout
ました。