跳至主要内容

以编程方式导入存储库

你可以以编程方式将存储库导入到 GitHub。

关于存储库的编程导入

在以下指南中,你将学习如何以编程方式将 Git 存储库的“源和历史记录”迁移到 GitHub。根据存储库的存储位置,有不同的选项可用。

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

术语“源存储库”指你正在导入的存储库,“已导入存储库”指你正在创建的新存储库。

使用派生(Fork)

如果源存储库在 GitHub 上,你可能可以使用派生而不是直接导入存储库。派生允许你在不影响原始存储库(也称为“上游”存储库)的情况下对项目进行更改。

派生存储库后,你可以:

  • 从上游存储库获取更新,以使你的派生保持最新
  • 通过从你的派生创建拉取请求来为原始项目做贡献。有关详细信息,请参阅关于派生

你可以使用 REST API 以编程方式派生存储库。有关详细信息,请参阅派生的 REST API 终结点

如果你的用例符合以下任何条件,则不能使用派生代替直接导入存储库。

  • 你希望已导入存储库与源存储库由相同的用户或组织拥有。
  • 你希望一个用户或组织能够多次导入同一个源存储库。

使用存储库模板

如果源存储库在 GitHub 上,你可能可以使用存储库模板。你可以从现有存储库创建模板。任何有权访问模板存储库的人都可以根据该模板创建一个具有相同目录结构、分支和文件的新存储库。有关更多详细信息,请参阅创建模板存储库

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

你可以使用 REST API 以编程方式从存储库模板创建存储库。有关详细信息,请参阅存储库的 REST API 终结点

使用 GitHub Enterprise Importer

如果源存储库托管在 GitHub、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。

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

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

使用 GitHub CLI

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

延伸阅读

© . This site is unofficial and not affiliated with GitHub, Inc.