Rus*_*ull 12 git git-filter-branch
我将一个大的源代码树分成两个独立的组件和一个共享的子模块.为了准备这个拆分,我首先将共享的东西移动到一个"公共"目录中,更新了所有引用,并进行了提交.到现在为止还挺好.现在我想将该目录解压缩到子模块中.
通常我会这样做
git filter-branch --subdirectory-filter
Run Code Online (Sandbox Code Playgroud)
但在这种情况下,所有有趣的历史都发生在该子目录之外,因此历史丢失了.
我知道保留完整的历史记录是没有意义的,因为这根本不会过滤掉任何数据.但我真的不想回到过去和构建的能力,我只是希望能够查看每个文件所属的提交.
有没有办法在保留单个文件的历史记录的同时保持过滤器分支行为?
并不真地。--subdirectory-filter是一种特殊情况,因为它实际上显着修改了树的内容(因为它将内容向上移动了一个或多个目录嵌套级别)。
因此,在您要过滤的子目录之外的文件与可以作为结果中提交的一部分存储的树之间并没有真正的良好映射。
请记住,这filter-branch完全重写了您的历史记录 - 输出是一组全新的提交,并且与旧提交没有任何“链接”,因此任何额外信息都必须作为新提交的一部分来表达。
| 归档时间: |
|
| 查看次数: |
2186 次 |
| 最近记录: |