甚至可以完全从Git存储库中删除特定的变更集。我想这样做,因为之前有一个提交,它添加了一些对源代码管理绝对无用的二进制文件。
我可以理解,如果提交节点具有父节点和特定历史记录这是不可能做到的,但我想这不会有问题。
答案是否定的问题是“你能否在发生提交之前克隆新的时间副本并再次从那里开始?”。
答案 0 :(得分:9)
使用git rebase -i <commit-id>
,其中id是要删除的变更集之前的提交。它将打开头和变更集之间的提交列表,从列表中删除您想要的提交并继续。当这个提交将被“分离”时,这意味着它将在存储库中浮动,直到它被垃圾收集。您可以使用git gc
来强制它。
但是,您应该记住,存储库中的所有克隆都会发散,并且应该在它之后进行重新定位。