我想将一些文件移动到另一个git存储库,同时保留提交历史记录和链接到这些提交的标记。
我按照了这个答案https://stackoverflow.com/a/11426261/245024,但补丁中没有包含标签
我正在寻找一种方法将标签重新应用到新的仓库。
由于相关标签有唯一的名称,我可以运行:
git show-ref --tags | grep pattrn
获取所有标记名称和提交,但由于新repo中的提交得到了不同的哈希,我无法重新应用这些标记
关于如何做的任何想法?
答案 0 :(得分:-1)
如果您使用rev-list
选项-- --all
,filter-branch
命令将重写所有分支和标记:
引自:https://git-scm.com/docs/git-filter-branch
重写存储库,看起来像foodir /是它的项目 root,并丢弃所有其他历史记录:
git filter-branch --subdirectory-filter foodir -- --all
因此你可以, 例如,将库子目录转换为自己的存储库。注意 - 将过滤器分支选项与修订选项分开,以及 --all重写所有分支和标签。