对提交进行了更改,执行了提交修改.做推,我得到错误:
! [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) 我想在不影响同一主题分支中的其他提交的情况下将单个提交推送到Gerrit.不幸的是,我没有Gerrit的测试实例来进行实验.
场景: 我已经为项目提供了一个主题分支,正在审核中,其他开发人员已经更新了部分内容.现在我希望在更新之后进行更改.
为此,我在我想编辑的提交中由其他开发人员提取更改,在本地执行交互式rebase以进行我自己的更改,然后推送到Gerrit,确保Change-Id仍然相同.这会将新版本的文件添加到补丁集中以供审阅.
问题: 当我尝试将单个提交推送到Gerrit时,主题分支中的其他提交也被推送,覆盖其他开发人员的更改.
这是我使用的语法:
git push gerrit 3089c9f56542461dce738a9aa17bb743ed36e038:refs/publish/master/my-topic-branch
Run Code Online (Sandbox Code Playgroud)
我假设由于Gerrit创建的依赖项,主题分支中的其他提交也被推送.
这种方法是否会起作用,省略主题分支标题?:
git push gerrit 3089c9f56542461dce738a9aa17bb743ed36e038:refs/publish/master
Run Code Online (Sandbox Code Playgroud)
我之前成功尝试过此方法,推送到特定的变更集:
git push gerrit a95cc0dcd7a8fd3e70b1243aa466a96de08ae731:refs/changes/12345
Run Code Online (Sandbox Code Playgroud)
但是,在再次尝试这个时,我现在得到一个解包错误:
error: unpack failed: error Missing tree 9172313b907b160d15e260d5f7d51689f467b858
Run Code Online (Sandbox Code Playgroud)
相关问题: 当我从Gerrit中提取其他开发人员的更改时,如何确保我已经提取了主题分支中提供的所有文件?如果我在主题分支中选择Gerrit中最顶端的更改,并使用web ui中所述的pull命令,则主题分支中的某些文件似乎在本地更新,但不是全部.我是否需要遍历topic-branch中的每个提交并发出相关的pull命令?