【发布时间】:2018-04-04 03:44:51
【问题描述】:
假设具有子目录 (A) 的非版本控制项目目录。 一年后,该目录被复制并进行了进一步的开发 (A')。
我刚刚将早期版本 A 添加到 Git。本着版本控制的精神,我希望将 A' 文件复制到 A 文件上(毕竟它们是同一个项目),但我试图系统地删除在以后的 A' 版本中不再存在的 A 文件。
我已经用 Google 搜索了很长时间,但似乎找不到(我敢打赌)经常发生的这种情况的最佳做法,所以我希望有一个众所周知的“秘诀”来解决它关闭而不编写自定义代码。
是否可以使用 git-diff --diff-filter=D ("Deleted") 生成 rm's 以使 A 的“残基”不再驻留在源代码管理中?
【问题讨论】:
-
你为什么要这样做?你想保留什么?你的回答将帮助我做出更好的回应。
-
@JDB 只希望在版本控制下将初始版本和修订版本作为同一个项目进行跟踪——就像任何其他软件项目一样。
-
哦...是的,没有优雅的方法可以做到这一点。听起来您想修改 git 提交的历史记录。这是可能的,但会非常混乱,对于任何正在进行的工作来说都是一个巨大的问题。您基本上将
git init包含在您的A项目的目录中,然后添加一个提交。然后设置您的来源并获取您的主分支。然后你需要在A上重新设置master。对于拥有基于 master 分支的任何人(包括您已经拥有的任何 dev 或 release 分支),这将导致一些小灾难。 -
哦...等等...
A'是一个 git repo 还是只是另一个没有版本化代码的目录?
标签: git git-diff delta git-difftool