TortoiseGit显示的是二进制相同(未修改)的修改文件,这些文件不会显示在git状态中。

问题描述 投票:0回答:1

我通过samba共享在一个文件夹上使用Tortoise,我在Linux虚拟机上使用Visual Studio Code Remote SSH进行开发。

我在Linux虚拟机上将所有文件规范化为NL,并添加了一个.gitattributes文件。

* text=auto

*.c text eol=lf
*.h text eol=lf

我在虚拟机上用git命令行提交并推送了所有修改后的文件,Linux虚拟机上的git状态为空。

现在在我的Windows PC上,当我试图用Tortoise提交时,我得到了一堆修改过的文件,而这些文件没有任何修改。

我试着在本地的 AutoCrLf 中,但文件仍然显示出来。.git/config 设置 autocrlf 从false改为true,反之亦然。

但是这两个设置都没有让文件在提交时从Tortoise Git中消失,这些文件根本无法改变,因为它们是同一个文件,只是从Windows PC上的共享中访问它们来使用,然后用Tortoise来提交。

我试着删除文件,然后用git checkout把它们找回来,但还是一样。

我怎么才能让Tortoise像git状态一样工作?

EDIT:我试过 git status 在windows下,它显示的文件被修改了,不像在Linux下,它显示的文件也是被修改的。

git tortoisegit
1个回答
0
投票

我发现这不是 Tortoise 的问题,而是 Git for windows 的问题。

在本地的git配置中,要切换为false的设置。

[core]
filemode = false

这是因为在linux上修改的文件权限usergroup是正确的,但在samba共享上,windows下的Git看到有东西因为samba ACL而改变了,但它不知道是什么。

© www.soinside.com 2019 - 2024. All rights reserved.