保留最近的提交并删除以前的3个提交?

时间:2019-03-19 22:39:07

标签: git

例如,我做一个git log:表明我有5次提交:

commit 1

commit 2

commit 3

commit 4

commit 5.

现在,我想保留提交1,但是删除提交2、3、4。因此,完成后,我的git log应该如下所示:

commit 1,

commit 5.

我该怎么办?谢谢。

1 个答案:

答案 0 :(得分:1)

一种进行操作的方法是交互式地变基(doc)。

另一种方法是重置为1并选择5:

git reset --hard <hashOfCommit_1>
git cherry-pick <hashOfCommit_5>

(例如,您可以使用git log --oneline -5找到哈希值)

但是,请注意,它会重写分支的历史记录。如果1之后的提交已被推送到远程存储库,则必须

git push --force origin HEAD

更新旧参考。