将子文件夹拆分为新存储库

您可以将 Git 仓库中的文件夹转换为一个全新的仓库。

注意

需要 Git 版本 2.22.0 或更高版本才能按照这些说明进行操作,否则 git filter-repo 将不起作用。

如果您创建仓库的新克隆副本,则将文件夹拆分为单独的仓库时不会丢失任何 Git 历史记录或更改。 但是,请注意,新存储库不会具有原始存储库的分支和标记。

  1. 打开终端(macOS) 终端(Linux) Git Bash(Windows) 。

  2. 将当前工作目录切换到您要创建新仓库的目录位置。

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

    git clone https://github.com/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
    

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

    如果希望将某个特定子文件夹用作新存储库的新根文件夹,可使用以下命令:

    $ git filter-repo --subdirectory-filter FOLDER-NAME
    # Filter the specific branch by using a single sub-directory as the root for the new repository
    
  6. 在 GitHub 上创建新存储库。

  7. 在 GitHub 的快速设置页面上的新存储库顶部,单击 复制到剪贴板图标 以复制远程存储库 URL。

    存储库中“快速设置”标头的屏幕截图。 在远程 URL 旁边,两个正方形相重叠的图标以橙色框出。

    提示

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

  8. 使用您为仓库复制的 URL 来新增远程名称。 例如,origin 或 upstream 是两个常见的选项。

    git remote add origin https://github.com/USERNAME/REPOSITORY-NAME.git
    
  9. 用新的存储库名称验证是否已添加远程 URL。

    $ git remote -v
    # Verify new remote URL
    > origin  https://github.com/USERNAME/NEW-REPOSITORY-NAME.git (fetch)
    > origin  https://github.com/USERNAME/NEW-REPOSITORY-NAME.git (push)
    
  10. 将更改推送到 GitHub 上的新存储库。

    git push -u origin BRANCH-NAME
    

原文:GitHub 文档团队,《将子文件夹拆分为新存储库》。来源:https://docs.github.com/zh/get-started/using-git/splitting-a-subfolder-out-into-a-new-repository 。正文依据官方中文页面完整整理,统一显示各平台说明,并补足复制图标的文字名称;命令与输出逐字保留。根据 CC BY 4.0 许可使用:https://creativecommons.org/licenses/by/4.0/ 。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容