m-b*_*tes 5 git git-rewrite-history
我的情况是我有两个Git存储库,我需要将它们合并到一个存储库中(实际上有更多的存储库,但是我可以从两个开始)。
这两个存储库是:
在库中的代码乙对在库中的代码依赖性甲(但不反之亦然),和两个库的历史彼此跟随以时间的方式-大致(即一个特定的在回购提交乙通常需要从回购提交一个具有非常相似的提交时间)。
两个存储库中的分支名称和标记名称冲突(不能保证它们都属于同一名称),但是仅需要保留A中的引用。
新存储库C的要求是:
git log --first-parent master)。A/,B格式的文件应放入B/)。A/和B/(至少在提交或两个)。到目前为止,我已经尝试了几种方法,包括this和git-stitch-repo,但是没有成功(它们没有满足上述要求)。
在这一点上,我已经设法:
mkdir A mv * .gitignore A / 2> / dev / null git commit -a -m'DROPME'> / dev / null git filter-branch --tag-name-filter cat --index-filter'git ls-files -s | sed“ s- \ t \” *-&A /-“ | GIT_INDEX_FILE = $ GIT_INDEX_FILE.new git update-index --index-info && mv” $ GIT_INDEX_FILE.new“” $ GIT_INDEX_FILE“ ||:'--所有 git reset-硬来源/主 git for-each-ref --format =“%(refname)” refs / original / | xargs -n 1 git update-ref -d
我现在所期待的,无非是一些聪明的使用git的过滤分支应该使我能够从选定提交插入乙到的主分支一个。但是如何?