在git重置后——很难,git状态给了我在Changes not staging for commit:部分中的文件。

我也试过git reset ., git checkout。而git check - out-index -f -a,毫无用处。

那么,我怎样才能摆脱这些未分阶段的变化呢?

这似乎只影响Visual Studio项目文件。奇怪。请看这个粘贴:http://pastebin.com/eFZwPn9Z。这些文件的特殊之处在于,在.gitattributes中我有:

*.sln        eol=crlf
*.vcproj     eol=crlf
*.vcxproj*   eol=crlf

另外,在我的全局.gitconfig中,selflf被设置为false。这有什么关系吗?


当前回答

如果您使用的是面向Windows的Git,那么这可能就是您的问题

我也遇到过同样的问题,隐藏,硬重置,清理,甚至所有这些都仍然留下了变化。原来的问题是git没有正确设置x文件模式。这是windows git的一个“已知问题”。gitk和git的本地变化显示为旧模式100755新模式100644,没有任何实际的文件差异。

修复方法是忽略文件模式:

git config core.filemode false

更多信息请点击这里

其他回答

正如其他答案所指出的,这个问题是因为行尾自动纠错。我在*.svg文件中遇到了这个问题。我使用svg文件图标在我的项目。

为了解决这个问题,我让git知道svg文件应该被视为二进制文件,而不是文本,方法是在.gitattributes中添加下面的行

* .二进制

Git不会重置不在存储库中的文件。所以,你可以:

$ git add .
$ git reset --hard

这将执行所有更改,这将使Git知道这些文件,然后重置它们。

如果这不起作用,你可以尝试隐藏并删除你的更改:

$ git stash
$ git stash drop

另一个原因可能是不区分大小写的文件系统。如果你的repo中有多个文件夹在同一层上,它们的名称只是大小写不同,你就会遇到这种情况。使用其web界面(例如GitHub或VSTS)浏览源存储库以确保。

欲了解更多信息:https://stackoverflow.com/a/2016426/67824

出于某种原因

转到添加 。

没用,但是

$ git添加

工作了!

我已经通过以下步骤解决了这个问题

从Git的索引中删除每个文件。 Git rm——cached -r。 重写Git索引以获取所有新的行结束符。 Git重置——很难

解决方案是配置Git处理行结束部分描述的步骤的一部分