Skip to main content
我们经常发布文档更新,此页面的翻译可能仍在进行中。 有关最新信息,请访问英语文档

将子文件夹拆分成新仓库

您可以将 Git 仓库内的文件夹变为全新的仓库。

如果您创建仓库的新克隆副本,则将文件夹拆分为单独的仓库时不会丢失任何 Git 历史记录或更改。

  1. 打开终端终端Git Bash

  2. 将当前工作目录更改为您要创建新仓库的位置。

  3. 克隆包含该子文件夹的仓库。

    $ git clone https://HOSTNAME/USERNAME/REPOSITORY-NAME
  4. 将当前工作目录更改为您克隆的仓库。

    $ cd REPOSITORY-NAME
  5. 若要从存储库中的其余文件中筛选出子文件夹,请安装 git-filter-repo,然后使用以下参数运行 git filter-repo

    • FOLDER-NAME:项目中要在其中创建单独存储库的文件夹。

    提示:Windows 用户应使用 / 来分隔文件夹。

    $ git filter-repo --path FOLDER-NAME/
    # Filter the specified branch in your directory and remove empty commits
    > Rewrite 48dc599c80e20527ed902928085e7861e6b3cbe6 (89/89)
    > Ref 'refs/heads/BRANCH-NAME' was rewritten

    现在,该仓库应仅包含您的子文件夹中的文件。

  6. 在 GitHub Enterprise Server 上新建存储库

  7. 在 你的 GitHub Enterprise Server 实例 的快速设置页面上的新存储库顶部,单击 以复制远程存储库 URL。

    创建远程仓库 URL 字段

    提示:有关 HTTPS 和 SSH URL 之间区别的信息,请参阅“关于远程仓库”。

  8. 检查仓库现有的远程名称。 例如,originupstream 是两个常见的选项。

    $ git remote -v
    > origin  https://HOSTNAME/USERNAME/REPOSITORY-NAME.git (fetch)
    > origin  https://HOSTNAME/USERNAME/REPOSITORY-NAME.git (push)
  9. 使用现有的远程名称和您在步骤 7 中复制的远程仓库 URL 为新仓库设置新的远程 URL。

    git remote set-url origin https://HOSTNAME/USERNAME/NEW-REPOSITORY-NAME.git
  10. 使用新仓库名称验证远程 URL 是否已更改。

    $ git remote -v
    # Verify new remote URL
    > origin  https://HOSTNAME/USERNAME/NEW-REPOSITORY-NAME.git (fetch)
    > origin  https://HOSTNAME/USERNAME/NEW-REPOSITORY-NAME.git (push)
  11. 将您的更改推送到 GitHub Enterprise Server 上的新仓库。

    git push -u origin BRANCH-NAME