上传代码时 git push远程时被拒绝!

当尝试将Git的master分支推送到Gerrit时,如果遇到'no new changes'错误或'remote reject'问题,这意味着本地和远程分支代码没有差异。解决方案包括使用`git commit --amend`生成新changeId或在merge时使用`--no-ff`。若因Gerrit构建失败或审查未通过导致的'change closed'问题,需在Gerrit恢复上次提交记录后再提交。
摘要由CSDN通过智能技术生成

问题: 本地使用 git merge 把dev分支合并到master分支之后,push master分支到Gerrit时,提示:

                Total 0 (delta 0), reused 0 (delta 0)
                 remote: Processing changes: refs: 1, done
                To ssh://xxx.xxx.xxx.xxx:xxxxx/{project_name}
               ! [remote rejected] HEAD -> refs/for/master (no new changes)
                 error: failed to push some refs to 'ssh://xxxxxx@xxx.xxx.xxx.xxx:xxxxx/{project_name}'
分析:
          no new changes 表示本地分支和远程分支代码没有差别,也就是没有新的提交。Gerrit审核根据commit id 和 changeId来判断是不是新的提交,dev分支merge到master分支后,在master上可能没有生成新的commit id和changeId。也就是两个分支的commit id和changeId都相同,在master分支推送到Gerrit的时候,Gerrit判断内容相同,因此拒绝push。
解决:
          方法一:通过git commit --amend生成新的changeId,然后再push;
          方法二:在merge的时候加上--no-ff参数。

--no-ff:不使用f

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值