分支与master同步并推送到Gerrit

时间:2020-10-27 19:15:08

标签: git gerrit

也许这是一个微不足道的情况,但是由于某种原因(实际上我在Git方面并不先进),我被卡住了。

我正在处理由“ repo”管理的多个存储库的项目,并尝试使分支与master同步,以便将其推送到gerrit。

我仅在一个存储库中进行了更改,但希望与其他主存储库(分支中没有代码更改的存储库)进行同步。

当我运行以下命令时,我将分支与master同步而没有冲突(因为在分支中未进行任何更改): git checkout master && git pull && git checkout MY-BRANCH && git merge master

控制台输出:

Branch 'master' set up to track remote branch 'master' from 'origin'.
Switched to a new branch 'master'
Already up to date.
Branch 'MY-BRANCH' set up to track remote branch 'MY-BRANCH' from 'origin'.
Switched to a new branch 'MY-BRANCH'
Already up to date.
Updating 0b6aed8..b048505
Fast-forward
 package.json | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

它表明package.json已更改(与master同步)。

所以现在,我只需要将其提交给gerrit即可,并且在使用命令时: git push origin HEAD:refs/for/MY-BRANCH/topicname

输出如下:

remote: Processing changes: refs: 1, done    
To ssh://gerrit.company.com:12345/path/to/repository
 ! [remote rejected] HEAD -> refs/for/MY-BRANCH/topicname (no new changes)
error: failed to push some refs to 'ssh://username@gerrit.company.com:12345/path/to/repository'

命令git status显示以下内容:

Your branch is ahead of 'origin/MY-BRANCH' by 15 commits.
  (use "git push" to publish your local commits)

nothing to commit, working tree clean

可能我不了解将分支与master同步并将其推送到远程的某些事情。

1 个答案:

答案 0 :(得分:0)

我找到了解决方法。不确定这是否正确,但是对我有用。

可以进行空的提交git commit --allow-empty -m "Synchronization with master",之后才可以进行推送。通过这种方法,我可以在gerrit中进行提交,该地方没有代码更改,但是分支与master同步。