我知道当您没有提供明确的分支名称时,会出现关于特定分支的问题git pull
,但是我想知道即使用户确实指定了不同的分支,是否可以强制拉分支。
例子。
如果我要登录到实时服务器并提取最新更改,我只想要来自分支live的更改。因此,如果我要在 shell 中执行以下命令:
git pull origin master
我希望 git 要么
- 抛出错误
- 忽略它,然后从源远程上的实时分支中拉取
这可能吗?我希望避免任何类似的情况,因为它是一个核心业务系统,所以当事情出错时就不好了。
如果这是您的生产服务器,那么允许任何人在该存储库中运行任意 git 命令似乎是个坏主意。任何合并(例如 with git pull
)都可能产生冲突,从而使您的实时服务器设置中断。我认为人们通常只允许开发人员通过推送到具有post-receive
或update
钩子检查的裸存储库来部署到生产服务器来处理这个问题:
refs/heads/master
正在更新如果是这样,将其签出到一个新目录:
GIT_WORK_TREE=/deployment/directory git checkout -f
当然,这并不能阻止人们在本地合并错误的东西,然后将其推送到登台服务器或实时服务器,但我认为你无能为力——人们只需要正确测试他们的提交(在推送之前在本地或在登台服务器上)。