2

我已经上传了一个 gerrit,现在我想从我的提交中删除一些文件,我该怎么做?

4

2 回答 2

7

假设您已将三个文件 a.java、b.java、c.java 提交给 gerrit,并且您想从提交中删除 b.java。请按照以下步骤操作。

  1. 如果您在不同的分支中,请选择特定的提交。
  2. 使用以下命令从提交中删除文件。(对要删除的文件执行此操作。)

    git reset HEAD^ path/to/file/b.java
    
  3. 使用以下命令修改提交。

    git  commit --amend
    

参考: https ://superuser.com/questions/229290/how-to-amend-the-last-commit-to-un-add-a-file/229296#229296?newreg=011d1b3234a8444295fbdd12b6d513b4

于 2017-05-29T09:43:20.340 回答
5

所以你需要生成一个新的补丁集来替换旧的补丁集。假设自您尝试编辑的提交以来您没有提交任何其他内容,请执行

git rm <files>
git commit --amend

你已经安装了 gerrit 提交钩子,不是吗?如果你有,你很好,准备好推动。你没有它,你需要将 Change-id 行从 gerrit web 界面复制到提交消息的末尾,否则 gerrit 将无法用新的补丁集替换以前的补丁集。

当您提交文件时(并且您在那里有与补丁集 1 中相同的 Change-id 行),将修复推送到 gerrit

git push origin HEAD:refs/for/master

或您要推送到的任何存储库和分支。

将来,您应该在从 gerrit 克隆存储库后立即安装提交挂钩。如果你用例如克隆

git clone ssh://firstname.lastname@gerrit/project

你可以得到提交钩子

cd project
scp firstname.lastname@gerrit:hooks/commit-msg .git/hooks

替换适用于您的案例的路径和机器名称。

于 2013-01-18T07:25:36.477 回答