Git 推送和拉取文件权限更改
Git push & pull file permission changes
我的生产服务器上有一个项目 linux1
。
- 我使用 Windows FileZilla 将项目从
linux1
复制到我的 Windows PC。
- 然后我使用 Windows Filezilla 从我的 Windows PC 将它复制到我的测试服务器
linux2
。
- 在
linux2
测试服务器上,我对文件进行了一些文件权限更改,还更改了一些代码。
- 然后我使用 Windows FileZilla 将项目从
linux2
测试服务器复制回我的 Windows PC。
如果我现在将项目从我的 Windows PC 推送到我的 Git 存储库,然后如果我将项目拉到我的生产 linux1
服务器上,文件权限是否会linux1
改变?或者这只会更新代码?
Git 只跟踪一个权限:可执行位。所有文件都存储为 644(所有者 rw-
、组和其他 r--
)或 755(所有者 rwx
、组和其他 r-x
)。
当您 pull
在您的生产服务器上时,文件的可执行位将根据它们的提交方式进行更新。不跟踪其他权限和文件所有权。执行 pull
ing 的用户需要修改本地文件系统上的文件的权限,并且可能成为任何已修改文件的所有者。
如果您需要进一步控制权限,您可以 运行 脚本。或者,使用对文件权限具有更强大控制的部署工具(这不是 Git 设计的目的)。
附带说明一下,在您的登台服务器上使用 git clone
/ fetch
/ pull
而不是通过您的 Windows PC 可能会更简单.
我的生产服务器上有一个项目 linux1
。
- 我使用 Windows FileZilla 将项目从
linux1
复制到我的 Windows PC。 - 然后我使用 Windows Filezilla 从我的 Windows PC 将它复制到我的测试服务器
linux2
。 - 在
linux2
测试服务器上,我对文件进行了一些文件权限更改,还更改了一些代码。 - 然后我使用 Windows FileZilla 将项目从
linux2
测试服务器复制回我的 Windows PC。
如果我现在将项目从我的 Windows PC 推送到我的 Git 存储库,然后如果我将项目拉到我的生产 linux1
服务器上,文件权限是否会linux1
改变?或者这只会更新代码?
Git 只跟踪一个权限:可执行位。所有文件都存储为 644(所有者 rw-
、组和其他 r--
)或 755(所有者 rwx
、组和其他 r-x
)。
当您 pull
在您的生产服务器上时,文件的可执行位将根据它们的提交方式进行更新。不跟踪其他权限和文件所有权。执行 pull
ing 的用户需要修改本地文件系统上的文件的权限,并且可能成为任何已修改文件的所有者。
如果您需要进一步控制权限,您可以 运行 脚本。或者,使用对文件权限具有更强大控制的部署工具(这不是 Git 设计的目的)。
附带说明一下,在您的登台服务器上使用 git clone
/ fetch
/ pull
而不是通过您的 Windows PC 可能会更简单.