有没有办法只允许将指定的本地分支推送到指定的远程?

Is there any way to allow to push only specified local branch to specified remote?

描述

这里有 2 个遥控器,originfoobar

origin 是我的主要遥控器,我有与 origin 相同的本地分支机构,
所以有 masterxxxxx.

有时我需要将 xxxxx 推送到 foobar/master(不是 foobar/xxxxx),
通过输入命令 git push foobar xxxxx:master.

但是我怕误把master推到foobar/master

所以问题是

有什么办法可以防止高手推送foobar吗?
或者,有没有办法只允许 xxxxx 推送到 foobar?

可能会增加属于origin的分支,我不想将任何其他分支推送到foobar,但只需要将xxxxx作为master推送到foobar。

默认情况下,git push 会将本地分支与本地分支正在跟踪的远程分支同步。

如果您通过 git checkout --track -b foobar_master foobar/master 签出本地分支,当您 运行 git push 时,foobar_master 分支将与 foobar/master.[=14= 同步]

请google"remote-tracking branch"了解更多详情。

顺便说一下,您可以运行 git branch -vv确认您的本地分支正在跟踪哪个远程分支。

您可能需要在配置中设置显式推送映射:

git config remote.foobar.push refs/heads/xxxxx:refs/heads/master

然后使用 git push foobar 没有明确的分支规范。

此外,您可以设置 pre-push 钩子来验证被推送的提交。