从Git-1.8.3-preview20130601.exe
安装Git运行Windows 7。
我的工作目录中有一个修改过的文件,我想在最后一次提交时将其恢复到状态。我尝试了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
时,我得到了同样的行为。
答案 0 :(得分:4)
此链接(由AD7Six提供) - help.github.com/articles/dealing-with-line-endings - 似乎就是答案:修复线路结尾。
由于autocrlf已设置为true,因此不确定该文件中的行结尾是如何搞砸的
感谢所有其他评论。
答案 1 :(得分:2)
这是一个疯狂的镜头,但是:
这个文件是出于某种原因在repo中被标记为可执行文件吗?它不太可能是html,但如果它已存储在例如一个胖的格式化驱动器是可以想象的。如果是这种情况并且您的Windows git未配置为忽略权限,则文件将始终更改,因为没有任何重置或签出将为您提供Windows上的可执行位。
将消息集filemode删除为false:https://superuser.com/a/139044/236874
答案 2 :(得分:0)
我遇到类似的问题,在我的案例中是osx,这是由于两个文件具有相同名称但不同的情况:https://sourcedevelop.org/blog/post/fix-git-commands-not-working-some-files
我花了好几个小时试图找出如何修复它,按照这些说明。识别两个具有相同名称的文件的症状的关键是当您对文件执行git checkout时,您会看到下一个git状态中列出的文件,但文件的大小写不同。我最终删除了文件,然后再添加其中一个。
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"