【问题标题】:! [remote rejected] HEAD -> refs/for/branch (no new changes)! [远程拒绝] HEAD -> refs/for/branch (没有新的变化)
【发布时间】:2020-12-02 00:52:09
【问题描述】:

我已经合并了一个分支并尝试将更改推送到 Gerrit,

git checkout dev
git merge feature

合并后我的状态显示如下,

$ git status
On branch dev
Your branch is ahead of 'origin/dev' by 35 commits.
  (use "git push" to publish your local commits)

nothing to commit, working tree clean

然后我试着推

git push origin HEAD:refs/for/dev

遇到错误,

! [remote rejected] HEAD -> refs/for/dev (no new changes)

建议在推送之前修改几个 SO 答案(answer1answer2answer3),但我有很多合并的 CL。 现在我该如何处理这种情况?

【问题讨论】:

    标签: git version-control gerrit git-push git-remote


    【解决方案1】:

    如果您需要推送更改以供审核(至refs/for/foo),请始终使用git merge --no-ff 创建合并提交。合并提交将被审核,一旦提交,合并分支将被引入目标分支。

    如果没有合并提交,则从 Gerrit 的角度来看,合并的提交之前已经在合并的分支上进行了审查。这就是 Gerrit 回复 no new changes 的原因,因为他们对 Gerrit 并不陌生。

    要解决当前问题,您可以尝试:

    git reset origin/dev --hard
    git merge feature --no-ff
    
    # if your repository requires ChangeID, use "git commit --amend" to invoke the hook to generate ChangeID.
    git commit --amend
    
    git push origin HEAD:refs/for/dev
    

    【讨论】:

      猜你喜欢
      • 2014-07-11
      • 1970-01-01
      • 2017-12-07
      • 2011-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多