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

Tow*_*wer 7 git

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

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

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

kan*_*kan 9

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

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