【发布时间】:2021-05-02 16:37:53
【问题描述】:
我知道,一般来说,git rebase -i 和 git reset 用于非常不同的事情。
但是在删除最近的 N 次提交的情况下,在我看来它们是(或可以是)相同的。我什至做了一个实验(我的存储库有两个不同的本地副本),据我所知它们是相同的。我只是发布这个问题,以防有人可以指出我可能遗漏了什么。所以这就是我所做的。
我需要删除最近的 11 次提交(不管为什么)。
我尝试了两种方法,它们看起来完全一样;只是想知道我是否遗漏了什么,因为它们并不完全相同:
git rebase -i HEAD~12
- 从我不想要的 11 个提交中删除提交行,只保留它们之前的提交(交互式 rebase 文件顶部的那个)。
- 变基成功
git reset --hard HEAD~12
这两种方法似乎做了完全相同的事情。对吗?
非常感谢。只是想比我现在更深入地了解 git。
【问题讨论】:
-
变基也可以让你做其他事情。如果您只是删除所有这些提交(显式或通过删除行),则与重置相同。
-
一个区别是
git rebase必须编辑一个文件,如前所述,因此需要更多的输入。
标签: git git-rebase git-reset