Overlay A' project over earlier A project: 寻求Git使用Case/Pattern删除不再需要的A文件?

Overlay A' project over earlier A project: Seeking Git Use Case/Pattern to delete A files no longer needed?

假设一个带有子目录 (A) 的非版本控制项目目录。 一年后,该目录被复制并进行进一步开发 (A')。

我刚刚将早期版本 A 添加到 Git。本着版本控制的精神,我希望将 A' 文件复制到 A 文件之上(毕竟它们是同一个项目),但我试图系统地删除 A 文件,这些文件在后来的 A' 版本中不再存在。

我已经用 Google 搜索了很长一段时间,但似乎找不到针对这种(我敢打赌)经常发生的情况的最佳实践,所以我希望有一个众所周知的 "recipe"如何在不编写自定义代码的情况下实现它。

是否可以使用 git-diff --diff-filter=D ("Deleted") 生成 rm's 以便 A 的 "residue" 更长驻留在源代码管理中?

因此,如果 AA' 只是两个具有不同版本代码的不同目录,并且您正在创建一个全新的 git 存储库,那么这实际上非常简单。

由于您已经使用 A 文件设置了 git 存储库,您需要做的就是删除存储库目录中的所有内容(当然,任何 git files/folders) 然后从 A' 复制文件,然后添加一个新的提交。

因此,您的 git 历史记录将如下所示:

z9y8x7w6v current state (A')
a1b2c3d4e f1rst p0st (A)

您将能够比较 AA' 之间的变化,但任何新工作都将从 A' 开始。这只会确保您在 git 历史记录中拥有 A 作为旧工件。

旁注:您现在考虑这个很好。如果您已经等待,并且已经在回购中完成了 A' 的任何工作,那么将 A 放入历史记录将非常困难。