分叉新存储库

问题描述

我有一个整体存储库,其中包含多个微服务。我现在想为其中的每个微服务创建存储库,但我不希望该微服务丢失其历史记录。我以为分叉将是最好的方法,但是github不会让我分叉存储库,因为我是所有者

简而言之

  1. 创建一个带有所有服务的全新仓库(同时带来旧仓库的历史)
  2. 在新存储库中,删除所有微服务,并仅保留其中之一
  3. 从整体中删除微服务
  4. 重复

什么是最好的方法?还是我只需要放弃自己的历史? (一旦所有微服务都有自己的存储库,将删除该整体文件

解决方法

有一个git命令,在github上的this help page中有记录:

git filter-branch --prune-empty --subdirectory-filter FOLDER-NAME  BRANCH-NAME

此命令在您的当前存储库中创建一个新分支BRANCH-NAME,其中包含FOLDER-NAME的历史记录。

github帮助页面还为您提供有关创建新存储库并将该分支推送到该新存储库的步骤的说明。