2013-07-14 21 views
7

GitをインストールしたWindows 7をGit-1.8.3-preview20130601.exeからインストールしています。git checkoutはファイルをリセットしません

作業ディレクトリに変更されたファイルがあります。最後のコミット時にその状態に復元したいと思います。私は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 

を使用する場合、私は聞いていると思います。たとえばファイルは同じです。

関連性があるかどうかわかりませんが、私はcore.autocrlftrueに設定しています。私がfalseに変更したとき、私は同じ動作をしました。

+0

@ MarkusUnterwaditzer彼はそれを試みました。 – millimoose

+0

'git checkout pomodoro.html'はコミットからではなくインデックスからファイルをチェックします。すでに変更を追加した場合、これが原因かもしれません。 *ファイルを元に戻すには、 'git checkout HEAD pomodoro.html'を試してみます。 – millimoose

+0

@millimoose:私は変更をコミットしていない、私はちょうどunstaged変更を元に戻したい。 "git checkout HEAD pomodoro.html"はうまくいきませんでした。 – Number8

答えて

2

それは野生のショットですが、:

はレポで実行可能としてマークされたいくつかの理由のために、このファイルのですか? HTMLの場合はそうではないが、例えばHTMLなどに格納されている場合はそうである。太ったフォーマットのドライブだと思う。この場合、あなたのwindows gitはアクセス権を無視するように設定されていないので、Windows上の実行可能ビットをリセットまたはチェックアウトすることができないため、ファイルは常に変更されます。 falseに設定されたメッセージファイルモードを取り除くために

https://superuser.com/a/139044/236874

+0

私は実行可能マーク付きファイルを扱い、Windowsのgitでは問題ありません。そのために問題はありません(問題は実行可能なものを作成したいとき、Windowsでその方法を見つけられなかったので、いくつかのUNIXでチェックアウトし、コミットしてプッシュします)。 –

+0

これは過去に改善された可能性があります。私は数年前にこの問題を抱えていました。彼がリセットに気付かなかったり、何か本当の問題がある場合、元の作者からの返事を待つことができます。 – mnagel

+0

私はちょうどPDFでその問題を抱えていました。それはgitでアップロードしたときに曲がって見えましたが、FTPで大丈夫だったようです。最後に、私はチェックアウトや隠し場所でそれを取り除くことができなかったことが判明し、これは私をここに連れて行き、すべてを解決しました。ありがとうございました。 – mgPePe

4

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

0

私はOSXで私の場合には、同様の問題を抱えていたし、同じ名前が異なる場合の2つのファイルが原因だった:私はこれらのような指示に従って、それを修正する方法を把握しようと時間を費やしhttps://sourcedevelop.org/blog/post/fix-git-commands-not-working-some-files

。同じ名前の2つのファイルの症状を認識するための鍵は、ファイルに対してgit checkoutを実行したときに、次の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" 
関連する問題