每当我运行git commit
或git status
时,有些文件在弹出显示modified
之前我从未更改过。我签出/恢复这些文件,但它不起作用。 git diff
也没有显示出差异。
我注意到,每当我在文件上运行git checkout
或git revert
时,我都不会更改,其修改时间会发生变化。
有什么方法可以将这些未更改的文件还原到原始状态?
下面是我的git bash输出,我删除了一些输出,因为许多文件现在处于不正确的状态。您可以看到文件'repositories.config'无法恢复。
欢迎使用Git(版本1.9.4-preview20140611)
运行'git help git'以显示帮助索引。运行'git help' 显示特定命令的帮助。
[MyAccount] /d/Git/Tour/Visa/Order/Visa.Order.Main/packages(release)
$ git status
在分支机构发布时您的分支机构是最新的 '起源/释放'。
未提交的更改提交:(使用“git add ...”进行更新 什么将被承诺)(使用“git checkout - ...”丢弃 工作目录的变化)
modified: repositories.config
没有更改添加到提交(使用“git add”和/或“git commit -a”)
[MyAccount] /d/Git/Tour/Visa/Order/Visa.Order.Main/packages(release)
$ git checkout。
[MyAccount] /d/Git/Tour/Visa/Order/Visa.Order.Main/packages(release)
$ git status
在分支机构发布时您的分支机构是最新的 '起源/释放'。
未提交的更改提交:(使用“git add ...”进行更新 什么将被承诺)(使用“git checkout - ...”丢弃 工作目录的变化)
modified: repositories.config
没有更改添加到提交(使用“git add”和/或“git commit -a”)
答案 0 :(得分:1)
最后我发现文件 .gitattributes 改变了git行为。 该文件包括以下行: * text = auto, 这将自动normailize行结尾。所以用#'#'来评论这一行,一切都很顺利。 查看http://git-scm.com/docs/gitattributes了解详情。
设置为字符串值" auto"
当文本设置为" auto"时,路径为 标记为自动行结束标准化。如果Git决定这一点 内容是文本,其行结尾在签入时标准化为LF。
实际上有很多东西可以影响行结尾检查的git行为。 git config:core.autocrlf,core.safecrlf,core.whitespace。如果遇到这样的类似问题,你可以检查所有这些方面。