我喜欢简单地使用git push
(仅)将当前分支推送到配置的上游。为此,我设置git config push.default upstream
了完全正确的方法。
现在我尝试为 Gerrit 设置一个合适的遥控器,它会自动推送到refs/for/*
.
这个想法是这样做的:
[remote "gerrit"]
url = ssh://host:port/repo
push = refs/heads/*:refs/for/*
我想输入git push gerrit
并期望 git 仅将当前分支推送到正确的引用。
不幸的是,现在 git 试图将所有本地分支推送到 Gerrit。- 有没有办法告诉 git 像push.default
上面一样只推送当前分支?
更新:
- Git push 只能使用一个 refspec。
- 如果在命令行上给出了明确的 refspec,则使用这个。
- 如果在命令行上没有给出,则使用远程定义的那个。
- 如果遥控器也没有给出,那么只有 push.default 被考虑。
对于 Gerrit,我需要一个像 'branch:refs/for/branch' 这样的 refspec,其中分支是当前分支。
问题:
- 是否有与 push.default=upstream 正在执行的操作等效的显式 refspec?
- 有没有办法配置 git 以使普通文本
git push
自动推送到正确的 refs/for ref?
目前,我发现的最好方法是将所有内容包装在一个单独的脚本中,就像这里建议的那样。但我仍然不相信只有一个合适的 refspec 是不可能的。