从Git仓库中完全删除特定的变更集?

8
有没有办法完全从Git代码库中删除特定的变更集? 我想这样做是因为一段时间前有一次提交,添加了一些对源代码管理绝对无用的二进制文件。
我可以理解如果考虑到提交节点有父节点和具体历史记录,这可能是不可能的,但我想问一下也无妨。
对于那些问题如"你能否只克隆发生在那个提交之前的新副本,并从那里重新开始吗?",答案是否定的。

可能是如何在git中移除错误提交的大文件的重复问题。 - antlersoft
1个回答

11
使用git rebase -i <commit-id>命令,其中id是要删除的变更集之前的提交记录。它会打开一个提交记录列表,显示在head和变更集之间的所有提交记录,您可以从该列表中删除想要的提交记录并继续操作。当此提交记录被“分离”时,它将漂浮在存储库中,直到被垃圾回收。您可以使用git gc命令来强制执行此操作。
但是,请记住,所有克隆存储库都会发生分歧,并且在此操作后都应进行再基于操作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接