也许这是一个微不足道的情况,但是由于某种原因(实际上我在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同步并将其推送到远程的某些事情。
答案 0 :(得分:0)
我找到了解决方法。不确定这是否正确,但是对我有用。
可以进行空的提交git commit --allow-empty -m "Synchronization with master"
,之后才可以进行推送。通过这种方法,我可以在gerrit中进行提交,该地方没有代码更改,但是分支与master同步。