首页 > 解决方案 > Git 推送和拉取文件权限更改

问题描述

我的生产服务器上有一个项目linux1

  1. 我使用 Windows FileZilla 将项目复制linux1到我的 Windows PC。
  2. linux2然后我使用 Windows Filezilla 将它从我的 Windows PC复制到我的测试服务器。
  3. linux2测试服务器上,我对文件进行了一些文件权限更改,还更改了一些代码。
  4. 然后我使用 Windows FileZilla 将项目从linux2测试服务器复制回我的 Windows PC。

如果我现在将项目从我的 Windows PC 推送到我的 Git 存储库,然后我将项目拉到我的生产linux1服务器上,文件权限是否会linux1更改?或者这只会更新代码?

标签: linuxwindowsgitfile-permissions

解决方案


Git 只跟踪一个权限:可执行位。所有文件都存储为 644(所有者rw-、组和其他r--)或 755(所有者rwx、组和其他r-x)。

当您pull在生产服务器上时,文件的可执行位将根据它们的提交方式进行更新。不跟踪其他权限和文件所有权。执行pulling 的用户需要修改本地文件系统上的文件的权限,并且可能会成为任何已修改文件的所有者。

如果您需要进一步控制权限,您可以运行脚本。或者,使用对文件权限具有更强大控制的部署工具(这不是 Git 的设计目的)。

作为旁注,在您的登台服务器上使用//可能会更简单,而git clone不是通过您的Windows PC。fetchpull


推荐阅读