Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

将子文件夹拆分成新仓库

您可以将 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-NAME1/ --path FOLDER-NAME2/
    # 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. 在 your GitHub Enterprise Server instance 的快速设置页面上的新存储库顶部,单击 以复制远程存储库 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