我的git控制文件无法还原

时间:2015-04-26 09:11:20

标签: git

每当我运行git commitgit status时,有些文件在弹出显示modified之前我从未更改过。我签出/恢复这些文件,但它不起作用。 git diff也没有显示出差异。

我注意到,每当我在文件上运行git checkoutgit 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”)

1 个答案:

答案 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。如果遇到这样的类似问题,你可以检查所有这些方面。