2

我做了一些我不想再做的垃圾提交

假设我做了一些小的更改并在每次更改后提交。但我只想从最后一次提交到 github。这是我的历史的样子:

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

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

我试图用谷歌搜索我的问题,但我只能找出如何删除最新的提交或类似的东西。

4

2 回答 2

4

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

git rebase -i HEAD~4

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

于 2013-09-21T18:03:06.327 回答
1

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

  1. git log并注意提交的哈希值1-3
  2. git revert <commit 1>,git revert <commit 2>git revert <commit 3>
  3. 现在您将获得额外three commits的内容,这将恢复对 commit 的更改1-3
  4. git rebase -i HEAD~7这会将您的 7 个提交压缩为 1 个。
  5. 出现提示时,编辑commit 4您要推送的提交消息pick并将其他人更改为squash.

有关更多信息,请参阅

于 2013-09-21T17:54:51.843 回答