当我尝试git stash save --patch
时,我会收到很多在git diff
或git status
中看不到的补丁更改。每次更改都会删除一些行,然后重新插入相同的行,没有明显的变化,例如:
-Some text line
+Some text line
-Another line
+Another line
所有这些更改都在一段时间内未触及的资源文件中。我的平台是使用Git for Windows的Windows。
为什么git stash
向我展示的内容与git diff
不同,我该如何解决?
答案 0 :(得分:0)
这与臭名昭着的git line endings / core.autocrlf
选项和.gitattributes
文件有关。即使我不明白原因,我也找到了解决问题的方法。
事实证明,某些git进程¹在我的本地存储库中创建了一个未跟踪的.gitattributes
文件。这个文件中的几乎所有行都被注释掉了,除了它附近的顶部:
* text=auto
当我注释掉这一行时,就这样
#* text=auto
git stash
的问题消失了,我只看到git diff
看到的更改。
¹)我怀疑原因是我在同一个存储库中创建的一个新的Visual Studio C#项目 - 我猜测IDE检测到存储库并添加了文件。