对提交进行了更改,执行了提交修改.做推,我得到错误:
! [remote rejected] master -> refs/for/master (no changes made)
Run Code Online (Sandbox Code Playgroud)
检查提交消息中的更改ID,它仍然是有效的提交.
我已经尝试更改文件,检查它显示为更改,然后添加到暂存区域并完成另一个提交修改.再次尝试推送并获得相同的问题.不知道这个.
编辑:这是推动gerrit,而不是直接git.
我在跑:
git push origin master:refs/for/master
Run Code Online (Sandbox Code Playgroud)
获取原产地详细信息的结果是(公司详细信息已删除):
$ 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)
Run Code Online (Sandbox Code Playgroud)
edw*_*yte 50
此问题是由于我之前执行的操作.我正在尝试进行push
一项新的变更,除了仍在审核的变更之外,谁的父母也在审核.
Trunk ------ Parent A ----- Parent B ----- New change
(merged) (unmerged) (unmerged)
Run Code Online (Sandbox Code Playgroud)
我曾经习惯cherry-pick
在本地获取这两个更改(Parent A和Parent B),然后第三个cherry-pick
在尝试之前从本地分支获取我的更改push
.这就是造成这个问题的原因,因为我个人的改变主要是试图重写历史.
正确的过程是pull
在主干时只有父B.这会自动提取trunk和它之间的任何提交(在这种情况下只是Parent A).然后cherry-pick
我的新变化,push
并将工作正常.
请在此处参考有关此问题的官方文档:
https://gerrit-review.googlesource.com/Documentation/error-no-new-changes.html
我遇到了同样的问题,我的问题是我推送了更改,然后放弃了合并,然后进行了一些调整,错误地修改了提交并再次推送。那是我得到错误的地方。
我的解决方法:
git commit --amend
,删除现有的change-Id
,并假设您已设置git钩子,则可以完成提交并change-Id
应为您分配一个新的。change-Id
,找出正在发生的情况,然后进行相应的修复。(推荐的)