如何为单个 git 推送指定策略
How to specify strategy for a single git push
我喜欢在 current
上保留我的默认推送策略,但时不时地我需要修改多个分支,然后推送所有分支,即我需要将策略设置为 matching
.
当一个分支一个分支地完成时,它会产生很多噪音并且需要时间。我的另一个选择是临时为该存储库设置我的推送策略,执行推送然后将其设置回我的默认值。这让我想知道是否有一种方法可以为类似于 git 合并策略的单次推送指定推送策略?
注意:我知道推送选项 --all
但我也有不打算推送的本地分支。
我假设 "push strategy" 是指 push.default
的设置(与 current
和 matching
一起使用)。
对于 运行 一个 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 :
例如。
我喜欢在 current
上保留我的默认推送策略,但时不时地我需要修改多个分支,然后推送所有分支,即我需要将策略设置为 matching
.
当一个分支一个分支地完成时,它会产生很多噪音并且需要时间。我的另一个选择是临时为该存储库设置我的推送策略,执行推送然后将其设置回我的默认值。这让我想知道是否有一种方法可以为类似于 git 合并策略的单次推送指定推送策略?
注意:我知道推送选项 --all
但我也有不打算推送的本地分支。
我假设 "push strategy" 是指 push.default
的设置(与 current
和 matching
一起使用)。
对于 运行 一个 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 :
例如。