8

からインストールされた Git で Windows 7 を実行していますGit-1.8.3-preview20130601.exe

作業ディレクトリに変更されたファイルがあり、最後のコミット時の状態に復元したいと考えています。のさまざまな呼び出しを試みgit checkoutましたが、変更されたファイルが作業ディレクトリに残ります。例えば:

[C:\Work\BitBucket\proj1] 14:32:45>git status
On branch work2
Your branch is behind 'origin/work2' by 9 commits, and can be fast-forwarded.
  (use "git pull" to update your local branch)
Changes not staged for commit:
   (use "git add <file>..." to update what will be committed)
   (use "git checkout -- <file>..." to discard changes in working directory)

       modified:   pomodoro.html
 no changes added to commit (use "git add" and/or "git commit -a")

[C:\Work\BitBucket\proj1] 14:32:53>git checkout pomodoro.html

[C:\Work\BitBucket\proj1] 14:33:00>git status
 On branch work2
 Your branch is behind 'origin/work2' by 9 commits, and can be fast-forwarded.
   (use "git pull" to update your local branch)

 Changes not staged for commit:
   (use "git add <file>..." to update what will be committed)
   (use "git checkout -- <file>..." to discard changes in working directory)

       modified:   pomodoro.html
 no changes added to commit (use "git add" and/or "git commit -a")

[C:\Work\BitBucket\proj1] 14:33:04>

( で同じ結果が得られgit checkout -- pomodoro.htmlます。)

というわけで、git は pomodoro.html が変更されたと思い込んでいるのですが、

git difftool  

ファイルは同一であると言われています。

関連性があるかどうかはわかりませんが、Git 構成で に設定core.autocrlfしました。trueに変更するとfalse、同じ動作になりました。

4

3 に答える 3

5

このリンク (AD7Six が提供) -- help.github.com/articles/dealing-with-line-endings -- が答えのようです: 行末を修正してください。
autocrlf が true に設定されているため、その 1 つのファイルの行末がどのように混乱したかはわかりません。
他のすべてのコメントをありがとう。

于 2013-07-17T17:42:35.693 に答える
3

私の場合、osxで同様の問題がありましたが、それは同じ名前で大文字と小文字が異なる2つのファイルが原因でした: https://sourcedevelop.org/blog/post/fix-git-commands-not-working-some-files

次のような指示に従って、修正方法を見つけようと何時間も費やしました. 同じ名前の 2 つのファイルの症状を認識するための鍵は、ファイルに対して git チェックアウトを実行すると、次の git ステータスにファイルが一覧表示されますが、ファイルの大文字と小文字は異なります。最終的にファイルを削除してから、そのうちの1つを追加し直しました。

git rm -f <filename>
git rm -f <filename>
git commit -m "Removing duplicate files"
<put the file back, the version you want>
git add . 
git commit -m "adding files back"
于 2017-01-01T22:35:28.657 に答える