有两台机器,A和B。有两个分支,p16和c2。
A拥有一个ext3文件系统,但是在B上存档存在于一个truecrypt驱动器中,使用vfat格式,挂载显示rw,uid=1000,gid=1000,umask=077。
A使用sshfs将B的目录树链接到自己的目录树中,然后通过文件系统将A推送到B的p16中。
现在存在一些权限问题:
我猜问题出在本地文件系统是vfat truecrypt容器,而该文件系统不允许另一台机器所期望的权限。你有什么更好的方法来连接这两台拥有不同文件系统的机器吗?
A拥有一个ext3文件系统,但是在B上存档存在于一个truecrypt驱动器中,使用vfat格式,挂载显示rw,uid=1000,gid=1000,umask=077。
A使用sshfs将B的目录树链接到自己的目录树中,然后通过文件系统将A推送到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容器,而该文件系统不允许另一台机器所期望的权限。你有什么更好的方法来连接这两台拥有不同文件系统的机器吗?
filemode=false
,这将告诉 Git 忽略它正在跟踪的文件的可执行位。 - user229044