关于以编程方式导入存储库
在以下指南中,可了解如何以编程方式运行 Git 存储库到 GitHub 的“源和历史记录”迁移。 根据存储库的存储位置,可使用不同选项。
要详细了解“源和历史记录”和其他类型的迁移,请参阅“规划到 GitHub 的迁移”。
术语“源存储库”是指要导入的存储库,“导入的存储库”是指要创建的新存储库。
使用分支
如果源存储库位于 GitHub 上,则可以使用分支代替导入存储库。 您可以将 README 文件添加到仓库来交流有关您项目的重要信息。 自述文件以及存储库许可证、引文文件、贡献指南、行为准则传达了对项目的期望,并有助于管理贡献。 有关详细信息,请参阅 “关于分叉”。
可以使用 REST API 以编程方式创建存储库分支。 有关详细信息,请参阅“分支的 REST API 终结点”。
如果用例满足以下任一条件,则无法使用分支代替直接导入存储库。
- 导入的存储库应归源存储库的同一用户或组织所有。
- 一个用户或组织应可多次导入同一源存储库。
使用存储库模板
如果源存储库位于 GitHub 上,则可使用存储库模板。 可以从现有存储库创建模板。 拥有模板存储库访问权限的任何人均可基于目录结构、分支和文件相同的模板创建新存储库。 有关详细信息,请参阅“创建模板仓库”。
要使用存储库模板,必须拥有作为模板的现有存储库的读取权限,或者必须有权创建模板。
可以使用 REST API 从存储库模板以编程方式创建存储库。 有关详细信息,请参阅“存储库的 REST API 终结点”。
使用 GitHub Enterprise Importer
如果源存储库托管在 GitHub、GitHub Enterprise Server、Azure DevOps Services、Bitbucket 服务器或 Bitbucket 数据中心,可使用 GitHub Enterprise Importer 导入存储库。 有关详细信息,请参阅“关于 GitHub Enterprise Importer”。
除了源和版本控制历史记录之外,GitHub Enterprise Importer 还将迁移问题、拉取请求、设置等。
要使用 GitHub Enterprise Importer,必须拥有源存储库的管理员访问权限。
可以使用 GraphQL API 通过 GitHub Enterprise Importer 以编程方式导入存储库。
使用 Git CLI
如果源存储库为 Git 存储库,则可以从代码以编程方式调用 Git CLI。 可以使用 GitHub 的 REST API 以编程方式创建存储库,然后使用 git clone
和 git push
等命令将存储库导入到 GitHub。
Git CLI 的调用方式因代码语言而异。 例如,在 Node.js 中,可以使用 child_process
模块,在 Ruby 中,可以使用 open3
模块。 有关详细信息,请参阅 Node.js 文档中的子进程 或 GitHub 上的 ruby/open3 repository。
要使用 Git CLI,必须拥有在托管应用程序的系统上安装 Git 的权限。 有关详细信息,请参阅 Git 文档中的入门指南 - 安装 Git。
使用 GitHub CLI
如果源存储库为 Git 存储库,则可以从代码以编程方式调用 GitHub CLI。 可使用 gh repo create
创建存储库。 有关详细信息,请参阅“关于 GitHub CLI”。