根据所接触的文件将git Repository/history分为两个独立的分支
假设我有一个git回购协议,如下所示 分支机构主管根据所接触的文件将git Repository/history分为两个独立的分支,git,Git,假设我有一个git回购协议,如下所示 分支机构主管 ./.gitignore ./README ./foo/ ./foo/magic.py ./foo/document.txt ./bar/ ./bar/baxy.c ./herp/ ./herp/derp.h 有很多提交、修改或创建这些文件。 如果我想将历史(不需要共享第一次初始提交,但如果需要的话也可以)分成两个分支(假设分支是最好的方式),然后将它们分成两个分支,该怎么办 分支A ./.gitignore ./foo/ ./foo/mag
./.gitignore
./README
./foo/
./foo/magic.py
./foo/document.txt
./bar/
./bar/baxy.c
./herp/
./herp/derp.h
有很多提交、修改或创建这些文件。
如果我想将历史(不需要共享第一次初始提交,但如果需要的话也可以)分成两个分支(假设分支是最好的方式),然后将它们分成两个分支,该怎么办
分支A
./.gitignore
./foo/
./foo/magic.py
./foo/document.txt
分支机构B
./.gitignore
./README
./bar/
./bar/baxy.c
./herp/
./herp/derp.h
例如,不能保证在同一个提交中提交没有同时触及foo/magic.py
和herp/derp.h
。分支应该具有影响这些文件的提交的所有历史记录,可以分解影响多个文件的提交(跨越历史记录分割)
我该怎么做?(我曾考虑过耸耸肩,复制文件,说“去他妈的历史”,但这似乎是一种逃避。)
编辑:
非常确定,
git filter branch
在这里持有密钥,但以前从未使用过它,我将进行一些阅读。这不是一个完整的解决方案,但是git filter branch——子目录filter foo
将重写存储库,使其具有一个新的./foo根,因此看起来像
./magic.py
./document.txt
伴随着这些犯罪的历史
它确实非常接近我想要的,一个.gitignore文件的历史记录不是必需的,并且可以很容易地作为第一次提交追溯插入,因为我们正在破坏SHA1哈希兼容性