我在Windows上用Cygwin检查了一个Git repo,然后安装了Sourcetree并打开了同一个(本地)仓库。然后我安装了Sourcetree并打开了同一个(本地)仓库。我很惊讶地看到Sourcetree将许多文件标记为修改。
我用Notepad++打开了文件(在我用Sourcetree打开版本库之前),看到行尾是LF。
当我执行 git config --list
我得到 core.autocrlf=false
.
当我在Sourcetree中克隆仓库时,一切正常(Cygwin和Sourcetree都没有显示任何修改的文件)。
我还检查了文件的权限,但它们似乎是一样的,所以Cygwin似乎没有改变权限。
这种行为的原因是什么?Cygwin似乎做了一些Sourcetree认为是修改文件的事情?
Cygwin git版本: 2.21.0 Sourcetree git版本: 2.24.1
这就解决了这个问题。
git config core.filemode false
git config core.autocrlf true
(在Cygwin命令行中执行)
奇怪的是,同样的命令用 --global
切换没有任何帮助,这意味着每次克隆一个新的仓库时,都需要执行这两个命令。