我相信 atlassian 提供的答案是在您看到 Push 对话框时更改远程分支的名称。
- 打开推送对话框
- 单击“远程分支”列下的远程分支名称(我的当前是“主”)
- 输入新的 remo 分支名称 - 对我来说是 'refs/for/master'
- 单击确定。
这似乎已经为我正确地将提交推送到 Gerrit 中。我现在遇到的问题是 'refs/for/master' 值不会持续存在。现在要弄清楚这一点。一旦我弄清楚了,我会更新这篇文章。希望这有助于即使游戏迟到了。
更新:事实证明,您需要在 .git/config 的远程源下添加一个推送条目。您应该通过 git config 命令执行此操作(虽然我确实手动编辑了文件,但我确信这是不好的做法)。我写的推线是:
push = refs/heads/*:refs/for/*
为清楚起见,这是我在 .git/config 中的远程来源条目:
[remote "origin"]
url = ssh://gerrit-test.example.com:29418/mystuff.git
fetch = +refs/heads/*:refs/remotes/origin/*
push = refs/heads/*:refs/for/*
在 SourceTree 中,您现在可以推送,它将推送到 gerrit 而不是最终的 repo。(您现在也可以只执行 git push 而不指定其他任何内容,它将推送到 gerrit )。请注意,在推送之后,SourceTree 仍会在 Push 按钮上显示一个数字,表示您仍有要推送的内容。这是因为它仍在从主存储库中获取,并且您推送到 gerrit 中的更改尚未合并到主存储库中。一旦您的更改被合并到主存储库中,按钮上的数字将消失。