git推送时保留远程目标

问题描述 投票:0回答:2

我有两个遥控器设置与git工作令人敬畏,即originproduction。为了避免意外地将产品推向生产,如果我只输入origin,我想只推送到git push。但是,当我做git push production和随后的推动将推动生产。我想这与git文档中的以下摘录有关。

当命令行未指定使用参数推送的位置时,将查询当前分支的branch。*。远程配置以确定推送的位置。如果缺少配置,则默认为origin。

我该如何解决这个问题?理想情况下,当我做git push时,我想得到一条错误消息,以便我总是必须为此repo指定遥控器,或者它永远不会切换到production

git deployment push risk-management
2个回答
1
投票

最接近的可能是将push.default配置为nothing(请参阅git-config reference for push.default):

没有 - 除非明确给出refspec,否则不要推送任何东西(错误输出)。这主要是针对那些希望通过始终明确避免错误的人。

如果没有给出refspec,它将打印错误,即没有指定要推送的分支。这意味着推送需要始终包含远程和分支两者,以确保需要显式指定远程。

配置命令是:

git config push.default nothing

并显示生成错误的示例:

$ git push
fatal: You didn't specify any refspecs to push, and push.default is "nothing".
$ git push origin
fatal: You didn't specify any refspecs to push, and push.default is "nothing".
$ git push origin master
Counting objects: 2, done.
...

请注意,您也可以使用HEAD而不是显式分支名称来表示当前已检出的分支。

由于这提供了一些防止意外推动的安全性,我通常将push.default配置为nothing全局(即除非明确覆盖,否则为所有repos):

git config --global push.default nothing

0
投票

这可以通过以下方式实现

git config remote.pushDefault origin

现在,如果省略远程并且只发出git push,它将推送到原点而不是部署。要推送到另一个遥控器,例如部署,只发出git push deploy。有关深入信息,请参阅git documentation

© www.soinside.com 2019 - 2024. All rights reserved.