1. ホーム
  2. git

[解決済み] Gitです。Changed but not committed "で頑固に止まっている2つのファイルを元に戻すには?

2023-02-08 22:12:57

質問

ローカルで変更したと思われる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")

行うこと git diff を実行すると、ファイル全体のコンテンツが変更されたと表示されます。

興味深いことに、私はこれらのファイルをローカルに変更した覚えがありません。このリポジトリは、1 つのリモート リポジトリ (GitHub.com の非公開リポジトリ、参考までに) で使用されています。

何を試しても、これらのローカルな変更を破棄することができません。私はすべてを試しました。

$ 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 つのファイルがこのようにスタックして、一見 "un-revert-table" となる原因は一体何でしょうか?

P.S. 私がすでに試したコマンドを示す上記のリストで、私は誤って次のように書きました。 git revert と書いてしまいましたが、これは git checkout . 申し訳ございませんでした。 checkout . 私はそれを修正するために質問を編集しました。私は確かにすでに試してみました checkout .

どのように解決するのですか?

ファイルの改行コードは何ですか? おそらく CRLF でしょう。 もしそうなら、このガイドをチェックしてください。 http://help.github.com/line-endings/

要するに、コミット時に改行コードをLFに変換するようにgitが設定されていることを確認し、そのファイルをコミットする必要があります。 レポ内のファイルは常に LF であるべきで、チェックアウトされたファイルは、git が正しく設定されていると仮定すれば、OS のネイティブであるべきです。