![]() |
1
1
你真的 不能 这样做。但是你可以做一些同样好或足够好的事情:你可以做一个 复制 但在提交副本之前,请使其仅引用B端父级,而不是A端父级和要删除的旧历史。 一旦你复制了 那个 当然,在复制了这些子对象之后,您现在必须复制 他们的 儿童新副本将指其他新副本。这会一直重复,直到达到最近的提交。
最终结果将是 犹如 您已经更改了一个特定的提交,但它及其所有子体将 新 提交。然后,您可以将此存储库克隆到一个新的克隆,该克隆根本不涉及a端提交,它们将不会被复制;或者,正如您所建议的,您可以删除它们(但这非常困难,因为Git非常希望避免丢失工作,即提交)。在任何情况下,一旦做到了这一点,您必须说服存储库的所有用户放弃他们以前的克隆,转而使用这个新的重新缩小的存储库。 现在剩下的问题是如何说服Git更改某个特定提交的父代。有两种简单的方法可以做到这一点:
用作您的
|
![]() |
2
0
由于我的过滤过程只是从每次提交中删除特定文件,因此在修改后的repo(B)上再次运行相同的过滤器没有效果(B'=B),而在repo A中的提交上运行它会导致与B相同的提交。
进一步阅读: How does git assure that commit SHA keys for identical operations/data are still unique? |
![]() |
charleslcso · 从开源克隆并推送到我的GitHub[重复] 1 年前 |
|
Itachi · 无法为python项目安装“DAWG”包 1 年前 |
![]() |
Igor · git重置已删除目录上的头 2 年前 |
![]() |
Robo · 撤消删除Git中被忽略的文件 2 年前 |
![]() |
Ali EXE · 如何根据bat中命令的输出设置变量? 2 年前 |
![]() |
ShortArrow · 如何使用git管理链接源文件? 2 年前 |
![]() |
Siggi · 使用git移动文件时丢失历史记录 2 年前 |