Github)删除旧的提交

时间:2013-09-21 17:50:05

标签: git github commit

我做了一些垃圾提交,我不想再拥有了

假设我做了一些小改动并在每次改变后做出承诺。但我只想从最后一次提交到github。以下是我的历史记录:

Initial commit --> Second commit --> Third commit --> Fourth commit

只有我的第四次提交足以推送到github,所以如何删除提交1到3但保留4?

我试图谷歌解决我的问题,但我只能找到如何删除最新的提交或类似的东西。

2 个答案:

答案 0 :(得分:4)

如果最新提交依赖于它们,则无法删除最旧的提交。如果不是:

git rebase -i HEAD~4

通过删除相应的行删除不需要的提交。

答案 1 :(得分:1)

使用git revert <commit>其中<commit>是git log中显示的提交的哈希值。基本上它会创建另一个提交,它将恢复在指定提交中完成的更改。 以下是步骤:

  1. git log并注意提交1-3
  2. 的哈希值
  3. git revert <commit 1>git revert <commit 2>git revert <commit 3>
  4. 现在,您将获得额外的three commits,这将还原提交1-3的更改。
  5. git rebase -i HEAD~7这会将你的7次提交压缩为1。
  6. 出现提示时,请修改commit 4,将其提交邮件推送至pick,并将其他人更改为squash
  7. 有关详细信息,请参阅this