我有一个提交,其中包含两个更改的文件(文件a和b),我将其推送到gerrit仓库(但尚未合并)。现在我意识到我不需要更新b。我该如何推送一个新的变更集,以删除/取消提交b,只包括文件a?
Remove file-b from the commit
git reset HEAD^ -- file-b
Amend the commit without the file-b
git commit --amend
Discard file-b changes
git checkout -- file-b
Confirm that everything is OK
git status
git log
git diff HEAD^ HEAD
Push the new commit to Gerrit (new patchset)
git push origin HEAD:refs/for/master
由于我不能评论,我不得不警告其他用户,遵循Marcelo Ávila de Oliveira的解决方案在2022年11月14日已经不起作用了。新建了一个提交而不是保留提交SHA,这反过来会触发我的gerrit commit-msg hook发出一个新的Change-Id,从而破坏当前的修补程序工作副本。