标签: git version-control microservices
我计划将单片应用程序拆分为基于微服务的架构,但我希望保留GIT历史记录。
monolit应分为三个微服务。
我的第一种方法是,复制GIT存储库三次,并从新的微服务中删除所有非域特定部分,这应该保持git历史的大部分存活。但是,如果这是保持版本控制历史记录的最佳方式,我并不感到高兴。
答案 0 :(得分:1)
您可以使用git filter-branch和--subdirectory-filter选项来过滤存储库的子目录,从而使存储库包含子目录作为根目录。这在第5步here中有所描述,文档here也可能有所帮助。您必须将您的存储库克隆三次,并在每个存储库中为项目的不同部分运行filter-branch。
git filter-branch
--subdirectory-filter
filter-branch
由于(使用上述--subdirectory-filter)只能以这种方式处理子目录,您可能需要重新安排您的存储库。然而,优先于删除其他部分的优势在于,通过使用filter-branch,您只会预先设置与您的存储库的实际内容有关的历史记录,并且没有任何过滤掉部分的历史记录。