我们经常发布文档更新,此页面的翻译可能仍在进行中。有关最新信息,请访问英文文档。如果此页面上的翻译有问题,请告诉我们

此版本的 GitHub Enterprise 将停止服务 此版本的 GitHub Enterprise 已停止服务 2020-11-12. 即使针对重大安全问题,也不会发布补丁。 要获得更好的性能、改进的安全性和新功能,请升级到 GitHub Enterprise 的最新版本。 如需升级方面的帮助,请联系 GitHub Enterprise 支持

将子文件夹拆分成新仓库

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

此文档对您有帮助吗?

帮助我们创建出色的文档!

所有 GitHub 文档都是开源的。看到错误或不清楚的内容了吗?提交拉取请求。

做出贡献

或, 了解如何参与。

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

  1. 打开 Terminal(终端)Terminal(终端)Git Bash

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

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

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

    $ cd REPOSITORY-NAME
  5. 要从仓库中的其余文件过滤出该子文件夹,请运行 git filter-branch,提供以下信息:

    • FOLDER-NAME:项目中您要从其创建单独仓库的文件夹。

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

    • BRANCH-NAME: The default branch for your current project, for example, main or gh-pages.

      $ git filter-branch --prune-empty --subdirectory-filter FOLDER-NAME  BRANCH-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 上创建新仓库

  7. 在新 GitHub Enterprise 仓库 Quick Setup(快速设置)页面的顶部,单击 可复制远程仓库 URL。

    创建远程仓库 URL 字段

    提示: 有关 HTTPS 与 SSH URL 之间的差异,请参阅“我应使用哪种远程 URL?

  8. 检查仓库现有的远程名称。 例如,源仓库上游仓库是两种常见选择。

    $ 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 上的新仓库。

    git push -u origin BRANCH-NAME

此文档对您有帮助吗?

帮助我们创建出色的文档!

所有 GitHub 文档都是开源的。看到错误或不清楚的内容了吗?提交拉取请求。

做出贡献

或, 了解如何参与。