从Git存储库中删除特定的变更集?

时间:2011-11-11 21:21:01

标签: git

甚至可以完全从Git存储库中删除特定的变更集。我想这样做,因为之前有一个提交,它添加了一些对源代码管理绝对无用的二进制文件。

我可以理解,如果提交节点具有父节点和特定历史记录这是不可能做到的,但我想这不会有问题。

答案是否定的问题是“你能否在发生提交之前克隆新的时间副本并再次从那里开始?”。

1 个答案:

答案 0 :(得分:9)

使用git rebase -i <commit-id>,其中id是要删除的变更集之前的提交。它将打开头和变更集之间的提交列表,从列表中删除您想要的提交并继续。当这个提交将被“分离”时,这意味着它将在存储库中浮动,直到它被垃圾收集。您可以使用git gc来强制它。

但是,您应该记住,存储库中的所有克隆都会发散,并且应该在它之后进行重新定位。