如何从我的提交中删除一些文件

时间:2013-01-17 19:37:40

标签: git github gerrit

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

3 个答案:

答案 0 :(得分:3)

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

git rm <files>
git commit --amend

你已经安装了gerrit commit hook,不是吗?如果你有,你很高兴去,并准备好推。你没有它,你需要将ger-web界面中的Change-id行复制到提交消息的末尾,否则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

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

答案 1 :(得分:3)

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

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

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

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

答案 2 :(得分:0)