我有一个方便的sbt插件,可以执行一系列软件发布和生命周期管理,其中一项功能就是自动将其提交的内容推送到已配置的上游分支。
不幸的是,上游暂时下跌。我可以稍后推送提交,所以现在,我喜欢我的sbt插件,当它执行git push
时,只需要no-op。我怎样才能做到这一点?
答案 0 :(得分:1)
将遥控器的推送网址更改为"。"
git config remote.origin.pushurl .
然后当真正的人回来时,撤消重定向:
git config --unset remote.origin.pushurl
如果您的分支机构正在跟踪命名不同的上游分支,这将导致问题,在这种情况下只需创建一个nonce回购:
git clone --template '' -s --bare . ../nonce
git config remote.origin.pushurl ../nonce
将隔离命名空间。您可以在完成后删除现时的回购。
答案 1 :(得分:0)
您可以为git
命令创建一个简单的包装器,拒绝任何推送。这是一个相当简单的Bash函数。
git () {
case $1 in
push)
echo "git: push disabled" >&2
return 1 ;;
esac
command git "$@"
}
这很粗糙 - 它没有选项解析,所以例如git --verbose push
绕过case
支票。但是对于你陈述的问题,它可能不需要更复杂。