Skip to main content

以编程方式导入存储库

可以通过编程方式将存储库导入到 GitHub.com。

关于以编程方式导入存储库

在以下指南中,可了解如何以编程方式运行 Git 存储库到 GitHub.com 的“源和历史记录”迁移。 根据存储库的存储位置,可使用不同选项。

要详细了解“源和历史记录”和其他类型的迁移,请参阅“规划到 GitHub 的迁移”。

术语“源存储库”是指要导入的存储库,“导入的存储库”是指要创建的新存储库。

关于源导入 REST API 的弃用

用于管理源导入的 REST API 终结点允许以编程方式将可通过 Internet 访问的存储库导入到 GitHub.com。 有关详细信息,请参阅 REST API 文档中的“源导入”。

2024 年 4 月 12 日,GitHub 将弃用 REST API 文档中“源导入”列出的所有终结点。 如果当前正在使用这些操作,则需要对代码进行更改,否则应用程序将在 2024 年 4 月 12 日停止工作。

使用分支

如果源存储库位于 GitHub.com 上,则可以使用分支代替导入存储库。 您可以将 README 文件添加到仓库来交流有关您项目的重要信息。 自述文件以及存储库许可证、引文文件、贡献指南、行为准则传达了对项目的期望,并有助于管理贡献。 有关详细信息,请参阅 “关于分叉”。

可以使用 REST API 以编程方式创建存储库分支。 有关详细信息,请参阅 REST API 文档中的“前叉”。

如果用例满足以下任一条件,则无法使用分支代替直接导入存储库。

  • 导入的存储库应归源存储库的同一用户或组织所有。
  • 一个用户或组织应可多次导入同一源存储库。

使用存储库模板

如果源存储库位于 GitHub.com 上,则可使用存储库模板。 可以从现有存储库创建模板。 拥有模板存储库访问权限的任何人均可基于目录结构、分支和文件相同的模板创建新存储库。 有关详细信息,请参阅“创建模板仓库”。

要使用存储库模板,必须拥有作为模板的现有存储库的读取权限,或者必须有权创建模板。

可以使用 REST API 从存储库模板以编程方式创建存储库。 有关详细信息,请参阅 REST API 文档中的“存储库”。

使用 GitHub Enterprise Importer

如果源存储库托管在 GitHub.com、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 clonegit push 等命令将存储库导入到 GitHub.com。

Git CLI 的调用方式因代码语言而异。 例如,在 Node.js 中,可以使用 child_process 模块,在 Ruby 中,可以使用 open3 模块。 有关详细信息,请参阅 Node.js 文档中的子进程 或 GitHub.com 上的 ruby/open3 repository

要使用 Git CLI,必须拥有在托管应用程序的系统上安装 Git 的权限。 有关详细信息,请参阅 Git 文档中的入门指南 - 安装 Git

使用 GitHub CLI

如果源存储库为 Git 存储库,则可以从代码以编程方式调用 GitHub CLI。 可使用 gh repo create 创建存储库。 有关详细信息,请参阅“关于 GitHub CLI”。

其他阅读材料