无法摆脱git中的修改状态

时间:2014-07-01 21:24:46

标签: git

有时当我修改文件并通过git checkout -- fileName 丢弃更改时,Git仍然表示它已被修改。 Git diff表示每行已被删除并重新添加,但是,对于眼睛来说,线条看起来是相同的。当你做“git diff -w”时没有区别。目前我承诺这些虚假变化向前推进。我该如何解决这个问题?

我正在使用git 1.9.0.msysgit.0

我怀疑这是一个行尾问题。当我用vi -b打开文件时,我们看到^ M表示回车。我没有使用autocrlf,因为冲突的文件只在Windows上修改。

命令git reset --hard 无法解决问题。

git problem

3 个答案:

答案 0 :(得分:1)

有些事要尝试 -

  • git config --global core.eol返回什么?
  • git config --global core.autocrlf返回什么?这些配置的价值(或缺乏值)可能会给你一些线索。
  • 为什么不使用.gitattributes方法来查看是否能解决您的问题? This article有一个C#项目的.gitattributes文件示例。

答案 1 :(得分:0)

行结尾可能与它有关。无论如何,运行

git status

显示修改后的文件。您可以再次git checkout该文件以使其保持清洁。

作为参考,核选项是:

git reset --hard HEAD
git clean -xdf .

来自存储库的根目录。此使存储库包含HEAD提交的内容 - 您将失去其他所有内容。请阅读the git-clean manpage

答案 2 :(得分:0)

尝试使用git checkout filename而不使用语句末尾的--