如果这是您的生产服务器,允许任何人在该存储库中运行任意git命令似乎是一个坏主意。任何合并操作(例如使用git pull
)都可能创建冲突,导致您的实时服务器出现故障。我认为人们通常通过只允许开发人员通过推送到具有post-receive
或update
钩子的裸存储库来解决此问题。
refs/heads/master
is being updatedIf so, checks it out to a new directory with:
GIT_WORK_TREE=/deployment/directory git checkout -f
当然,这并不能阻止人们在本地合并错误的内容,然后将其推送到暂存服务器或实际服务器上,但我认为你无法做太多事情 - 人们必须在推送之前正确地测试他们的提交(无论是在本地还是在暂存服务器上)。
git pull
别名为git pull origin live
)可能很容易被规避,无意或有意。 - Ben James