gpt4 book ai didi

Git diff 报告本地更改 'old mode'/'new mode'

转载 作者:太空狗 更新时间:2023-10-29 13:09:45 31 4
gpt4 key购买 nike

有 2 台机器,A 和 B。有 2 个分支,p16 和 c2。

A 有一个 ext3 文件系统,但在 B 上,存档位于带有 vfat 的 truecrypt 驱动器上,mount 显示 rw,uid=1000,gid=1000,umask=077

A 使用 sshfs 将 B 的目录树链接到它的目录树,然后 A 使用文件系统将其 push B 的 p16。

现在有一些权限问题:

B$ git status
# On branch p16
nothing to commit (working directory clean)
B$ git checkout c2
Switched to branch 'c2'
B$ git checkout p16
error: You have local changes to 'help.txt'; cannot switch branches.

git diff 现在向我显示所有文件的更改模式:

B$git diff
diff --git a/help.txtt b/help.txt
old mode 100644
new mode 100755
diff --git a/169.txt b/169.txt
old mode 100644
new mode 100755
...
(a list with all files having their mode changed follows)
...

我猜问题是本地文件系统是一个 vfat truecrypt 容器,文件系统不允许其他机器期望的权限。

有什么想法可以更好地链接具有不同文件系统的两台机器吗?

最佳答案

如果操作系统的文件权限在该位置无法正常运行,则使用 git 时可能会出现此类问题。例如,挂载外部文件系统时。

meagar 在他对上述问题的评论中指出了解决方案:

只要确保你有(在[core]部分)一行

filemode=false

在 .git/config 中,它将告诉 git 忽略它正在跟踪的文件的可执行位。

做同样事情的另一种方法是在终端中转到 git repo 的根目录并键入:

git config core.filemode false

请注意,有时需要更改此设置,否则最好保持默认行为。在许多情况下,git 正确跟踪文件权限非常重要,这样您的项目才能正常工作。

关于Git diff 报告本地更改 'old mode'/'new mode',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5425088/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com