如何为单个 git 推送指定策略

How to specify strategy for a single git push

我喜欢在 current 上保留我的默认推送策略,但时不时地我需要修改多个分支,然后推送所有分支,即我需要将策略设置为 matching.

当一个分支一个分支地完成时,它会产生很多噪音并且需要时间。我的另一个选择是临时为该存储库设置我的推送策略,执行推送然后将其设置回我的默认值。这让我想知道是否有一种方法可以为类似于 git 合并策略的单次推送指定推送策略?

注意:我知道推送选项 --all 但我也有不打算推送的本地分支。

我假设 "push strategy" 是指 push.default 的设置(与 currentmatching 一起使用)。

对于 运行 一个 Git 命令,同时在该命令的持续时间内覆盖某些 Git 配置变量的配置设置,请使用:

git -c <name>=<value> command

例如,git -c push.default=matching push

但是请注意,push.default 仅影响 git push 不会 列出参考规范命令行。出于脚本目的,通常更明智的做法是构建您 打算推送的 refspecs 集,然后将它们作为参数传递:

pushargs=
for b in ...; do
    if want-to-push $b; then
        pushargs="$pushargs $b"
    fi
done
if [ -n "$pushargs" ]; then git push $remote $pushargs; fi
例如

(假设 $remote 已经设置并且 ... 部分有一些明显的方法来填充它)。另外,如果你的意思是 matching,特殊的 refspec : 意味着:

git push origin :

例如。