删除中间GIT提交

时间:2014-01-10 05:57:59

标签: git github gerrit

我有一个中间git提交,我现在已合并到代码中。它错误地发生了。我有两个选择:

  1. 从gerrit删除项目,我必须在
  2. 中安装delete-project插件
  3. 从GIT存储库中删除提交。
  4. 我想有关于使用第二个选项的建议,因为我没有管理员权限来安装插件。

    提交1

    提交2

    我想保留提交1并删除提交2.提交2是一个目录,其中包含许多文件。

    有什么建议吗?

3 个答案:

答案 0 :(得分:0)

正常还原怎么样?你想因为它的大小而清除它吗?

然后你需要Force Push访问权限[编辑:在Gerrit],这使你能够做到

git push --force

在您使用

跳过一次提交后
git reset --hard HEAD^

请注意,在与开发人员团队一起处理存储库时,应避免重写历史记录。

答案 1 :(得分:0)

我认为你在寻找

$ git reset --hard REF

此处REF将是SHA1的{​​{1}}。

答案 2 :(得分:0)

好的,所以你想摆脱一次提交。

如果您尚未推出提交,可以使用

将其删除
git reset --hard HEAD~

检查当前的修订版本。
您之前的历史记录:commit1--commit2
您的历史记录:commit1

如果你已经推送了提交,只要在commit2(巨大的,密码等)中没有关键,最好将commit2保留在历史记录中并恢复提交而不是丢弃它:

git revert <sha-of-commit2>

这将创建一个新的提交,以恢复commit2所做的更改 您之前的历史记录:commit1--commit2
您的历史记录:commit1--commit2--commit3