跳至主要内容

以编程方式导入仓库

您可以以编程方式将仓库导入 GitHub.com。

关于以编程方式导入仓库

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

要了解有关“源代码和历史记录”以及其他迁移类型的更多信息,请参阅“规划迁移到 GitHub”。

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

使用分支

如果源仓库位于 GitHub.com 上,您可能可以使用分支而不是导入仓库。分支允许您对项目进行更改,而不会影响原始仓库,也称为“上游”仓库。在您创建分支后,您可以从上游仓库获取更新以保持分支最新,并且您可以使用拉取请求从分支向上游仓库提出更改。有关更多信息,请参阅“关于分支”。

您可以使用 REST API 以编程方式创建分支。有关更多信息,请参阅“REST API 分支端点”。

如果您的用例符合以下任何标准,则不能使用分支来代替直接导入您的仓库。

  • 您希望导入的仓库与源仓库由相同的用户或组织拥有。
  • 您希望一个用户或组织能够多次导入同一个源代码库。

使用代码库模板

如果源代码库位于 GitHub.com 上,您可能可以使用代码库模板。您可以从现有代码库创建模板。任何有权访问模板代码库的人都可以基于模板创建一个新的代码库,该代码库具有相同的目录结构、分支和文件。有关更多详细信息,请参阅“创建模板代码库”。

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

您可以使用 REST API 以编程方式从代码库模板创建代码库。有关更多信息,请参阅“代码库的 REST API 端点”。

使用 GitHub Enterprise Importer

如果源代码库托管在 GitHub.com、GitHub Enterprise Server、Azure DevOps Services、Bitbucket Server 或 Bitbucket Data Center 上,您可以使用 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 存储库

要使用 Git CLI,您必须能够在托管应用程序的系统上安装 Git。有关更多信息,请参阅 Git 文档中的 入门 - 安装 Git

使用 GitHub CLI

如果源代码库是 Git 存储库,您可以从代码中以编程方式调用 GitHub CLI。您可以使用 gh repo create 创建存储库。有关更多信息,请参阅 "关于 GitHub CLI。"。

进一步阅读