我有一个从 GitHub 克隆的存储库,并且我对文件 A 进行了更改,但是 Git 正在检测 文件 B、C 和 D 的更改。所有三个文件都检测到基本上 B、C、D 的全部内容的更改。即+B、C、D 中的所有行,-B、C、D 中的所有行。
我不想提交这个,因为它会导致脏提交。为什么 git 会检测这些更改以及如何让 git 永远忽略这些更改?
该项目是用 C# 编写的,我使用 GitHub Windows 应用程序,IDE 是 VS Express 2012。
编辑: 我意识到文件已经更改,但是有没有办法 a) 找出更改的内容 b) 告诉 git 忽略它们并且不在提交之间再次拾取它们。在我第一次打开克隆项目后,我的编辑器似乎正在以某种方式修改文件 B、C、D。
即使运行 git reset --hard 后,git diff 仍然会报告更改。
最佳答案
你可能需要告诉 git 你的行结束策略。
有关此主题的更多信息,请参阅以下资源
- https://help.github.com/articles/dealing-with-line-endings#platform-windows
- http://lydiapchung.wordpress.com/2012/06/01/github-for-windows-line-endings/
注意:短时间内修复需要调整计算机上的core.autocrlf
设置。正确的修复方法是创建一个 .gitattributes 文件,提交它,然后将 Pull 请求发送到您克隆的上游存储库。事实上,它不仅可以解决您的问题,还可以防止新用户以后遇到同样的问题。
有效的、C# 项目兼容的跨平台 .gitattributes
文件示例 can be found here 。请随意从中获得一些灵感;-)
关于行结尾和 Git 内部工作原理的非常详细的博客文章是 Mind the end of your line 。非常值得一读。
关于c# - 如何丢弃文件之间的 Git 更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13263774/