对提交进行更改,执行提交修改。推动我得到错误:
! [remote rejected] master -> refs/for/master (no changes made)
检查提交消息中的更改ID,它仍然是有效的提交。
我已经尝试更改文件,检查它是否显示为更改,然后添加到暂存区域并完成另一个提交修改。再次尝试推送并获得相同的问题。不知道这个。
编辑:这是推动gerrit,而不是直接git。
我正在跑步:
git push origin master:refs/for/master
获取原产地详细信息的结果是(公司详细信息已删除):
$ git remote show origin
* remote origin
Fetch URL: ssh://lytee@gerrit.mycompany.net:29418/myrepo
Push URL: ssh://lytee@gerrit.mycompany.net:29418/myrepo
HEAD branch: master
Remote branch:
master tracked
Local branch configured for 'git pull':
master rebases onto remote master
Local ref configured for 'git push':
master pushes to master (up to date)
答案 0 :(得分:49)
此问题是由于我之前执行的操作。我试图push
一个新的变化,除了一个仍在审查的变化之外,谁的父母也在接受审查。
Trunk ------ Parent A ----- Parent B ----- New change
(merged) (unmerged) (unmerged)
我曾使用cherry-pick
在本地获取这两个更改(Parent A和Parent B),然后使用第三个cherry-pick
在尝试push
之前从本地分支获取更改。这就是造成这个问题的原因,因为我个人的改变主要是试图重写历史。
正确的过程是在主干时只有pull
父B。这会自动提取trunk和它之间的任何提交(在这种情况下只是Parent A)。然后cherry-pick
我的新更改以及push
将正常工作。
答案 1 :(得分:4)
请参阅此问题的官方文档:
https://gerrit-review.googlesource.com/Documentation/error-no-new-changes.html
我有同样的问题,我的问题是我推动了更改,然后放弃了合并,然后我做了一些调整,错误地修改了我的提交并再次推送。这就是我收到错误的地方。
我的修复:
git commit --amend
,删除现有的change-Id
,假设您已设置git挂钩,则可以完成提交并使用新{{1}应该分配给你。 change-Id
,弄清楚发生了什么,然后进行相应的修复。 (推荐)答案 2 :(得分:2)
如果您正在尝试更新一组评论,每个评论都有自己想要维护的更改ID(例如,在您交换两个提交顺序的rebase之后),您可能会被拒绝堆中的提交保持不变。您应该通过重写提交或类似的东西来强制生成新的哈希。
答案 3 :(得分:1)
听起来你正在做的一切正确,只要你确认你已经做了Gerrit应该接受的改变。
git push origin master:refs/for/master
也许这就是问题所在?如果您的更改不在您的本地版本的主分支上,那么您不会推动您的更改。而是尝试:
git push origin HEAD:refs/for/master
HEAD
是一个快捷方式,代表您当前在git中的提交。
答案 4 :(得分:1)
我有同样的问题。刚刚更改了提交消息并推送了代码。成功了。
答案 5 :(得分:0)
我有同样的问题。 与此同时,还有另一个提交没有合并到主人,并在gerrit审查和gerrit重新定位。 即推送审查的代码。在gerrit重新定位并审查待完成。 一旦代码被审查,我就可以毫无错误地推送。
答案 6 :(得分:0)
我有相同的错误消息,但我尝试推送的更改是在原始更改集的不同提交之上(使用git cherry-pick
做了一些魔术技巧,而且似乎gerrit不喜欢它)。我放弃了原来的更改,然后在我意识到我可以解决问题时重新打开它,但未能通过git review
发送给gerrit。
此时,我的快速解决方案是放弃gerrit网站的原始更改,并通过change-Id: sha1
从提交邮件中删除git commit --amend
最后一行来创建新的更改。
答案 7 :(得分:0)
如果推送的提交与此更改的当前补丁集相同,则Gerrit会拒绝将提交推送为更改的新补丁集。
如果
,则推送提交被认为与当前补丁集相同都是完全相同的。
答案 8 :(得分:-1)
我的简单解决方案是更新项目,然后提交并推送。
此帮助是因为主服务器和您的本地分支不一致。 可能是当您可能基于Gerrit ...