Gerrit 不小心引入了一些合并提交(配置了“必要时合并”选项),我想将它们从历史记录中删除。我知道团队使用 Git 时重写历史记录的陷阱,但在我们的案例中,开发人员不会遭受这种情况,因为他们都没有在此特定存储库中进行本地更改。
我git rebase -i
在本地做了一个,Git 自动删除了 Gerrit 的合并提交。我小心地删除了每个提交消息中以前的 Gerrit Change-Id,并在 Gerrit 提交消息挂钩中添加了新的。
git status
命令输出:
在分支 master 上您的分支和“origin/master”已经分歧,并且分别有 7 和 9 个不同的提交。(使用“git pull”将远程分支合并到您的分支中)无需提交,工作目录干净
这就是我想要的(9 次提交减去 2 次合并提交)。
当我尝试推动 Gerrit 时,git push origin HEAD:refs/for/master
我没有收到任何错误。但是,当我尝试在 Gerrit Web 界面上审核并提交时,出现以下错误:
由于路径冲突,无法合并更改。请在本地对更改进行变基并上传变基提交以供审核。
我做错了什么?
当重写历史时,你不会推送review(不要推送到refs/for/*
)。您需要直接推送到原始存储库(refs/heads/*
)。这意味着您需要权限才能绕过 Gerrit 中的审核。我建议您暂时授予自己权限,并在完成后将其删除,这样您将来就不会意外地绕过审核。
您还需要运行git push
带有-f
标志的命令来告诉 git 重写历史记录。
归档时间: |
|
查看次数: |
4659 次 |
最近记录: |