如何配置git put只推送一些分支而忽略其他分支?

如何配置git put只推送一些分支而忽略其他分支?,git,git-push,Git,Git Push,我想防止一些git私有分支被推到上游 我怎样才能做到这一点 可接受以下任何一种解决方案: 仅推送列表中的分支 跳过在列表中推送分支 更新:当前我的推送配置使用的是mirror=true,这意味着将推送所有分支 说明:我们公司内部确实有一个集中的内部存储库,它镜像到github。我们确实想让所有分支机构都进入公司存储库,这已经发生了,但我确实希望能够将公开的内容限制在github上,因此并非所有分支机构都将公开 问题是,现在一切都转到github,可能是因为镜像选项。如果我删除它,它可能只会推

我想防止一些git私有分支被推到上游

我怎样才能做到这一点

可接受以下任何一种解决方案:

  • 仅推送列表中的分支
  • 跳过在列表中推送分支
更新:当前我的推送配置使用的是
mirror=true
,这意味着将推送所有分支

说明:我们公司内部确实有一个集中的内部存储库,它镜像到github。我们确实想让所有分支机构都进入公司存储库,这已经发生了,但我确实希望能够将公开的内容限制在github上,因此并非所有分支机构都将公开

问题是,现在一切都转到github,可能是因为镜像选项。如果我删除它,它可能只会推送github上已经存在的分支

尽管如此,即使这个选项也不是我想要的,因为我希望能够控制跳过或包括哪些选项


如果可以使用正则表达式模式执行此操作,则效果更好。

将推送策略设置为上游:

git config --global push.default=upstream
(如果您只想将其用于单个回购,而不是机器上的所有回购,请跳过
--global
部分)

然后,确保私有分支没有上游分支集(如果没有手动设置,可能会出现这种情况)

如果存在任何远程跟踪分支,请使用以下方法删除它们:

git branch -d -r origin/<remote branch name>
git分支-d-r原点/

您需要决定是否真的要镜像。如果您确实想要镜像,那么所有引用都将由未经修饰的
git-push
git-push
推送。您仍然可以执行
git push:
,但是如果您想要推送一组分支,除非您编写脚本,否则这些分支可能会变得单调乏味,即使如此,如果您想要推送的分支集经常更改,这仍然是一件痛苦的事情


可能更好的选择是关闭镜像,并在
.git/config
中显式设置要推送的分支,以及在不指定分支的情况下进行
git推送时的合适默认模式。pgilmon的答案给出了该默认设置的一个可能设置-阅读文档以确定这是否是对您最有用的默认模式(较新版本的
git
为该默认设置提供了更多不同的模式,如果您没有指定,还可以实现不同的“默认默认设置”。

可能重复的答案,这不是现有问题的重复。我忘了提到我当前的配置使用了mirror=true选项。
git branch -d -r origin/<remote branch name>