跳至主要内容

关于锁定仓库

仓库可以被锁定以防止更改,通常用于迁移。

关于锁定仓库

当您将仓库迁移到或从 GitHub 产品迁移时,您的源仓库和目标仓库可能会被“锁定”以进行迁移。在仓库被锁定期间,您无法对仓库进行任何更改,例如推送提交、创建问题或评论拉取请求。

您的仓库在迁移期间是否会被锁定取决于您使用的工具以及在运行迁移时选择的选项。当仓库被锁定时,GitHub 上仓库页面上会显示带有以下文本的横幅

此仓库当前正在迁移。在迁移进行期间,它处于锁定状态。

通常,仓库在迁移完成后会自动解锁。在其他情况下,解锁仓库是一个手动步骤,并且解锁仓库所需的流程取决于您使用的迁移工具。

GitHub Enterprise 导入器锁定的仓库

在迁移进行期间,GitHub Enterprise 导入器会锁定对目标仓库的访问。如果迁移成功完成,则仓库将自动解锁。但是,如果迁移出现问题(包括迁移失败),仓库可能会保持锁定状态。

GitHub Enterprise 导入器默认情况下不会锁定源仓库。仅当您在 GitHub CLI 中指定 `--lock-source-repo` 选项或在 `startRepositoryMigration` GraphQL 变异中指定 `lockSource` 属性时,源仓库才会被锁定。

注意

除非您确定以后不需要解锁源仓库,否则我们不建议锁定源仓库。请考虑改为存档仓库。有关更多信息,请参阅“存档仓库”。

有关如何解锁 GitHub Enterprise 导入器锁定的仓库的信息,请参阅“排查 GitHub Enterprise 导入器迁移故障”。

“组织迁移”REST API 锁定的仓库

当您调用“启动组织迁移”端点以生成源仓库的迁移存档时,默认情况下不会锁定仓库。仅当您将 `lock_repositories` 参数设置为 `true` 时,仓库才会被锁定。

如果您通过此端点锁定仓库,则可以使用“解锁组织仓库”端点解锁仓库。

如果仓库存储在 GitHub Enterprise Server 上,站点管理员也可以使用站点管理员仪表板解锁仓库。有关更多信息,请参阅 GitHub Enterprise Server 文档中的“锁定仓库”。

ghe-migrator 锁定的仓库

当您使用 `ghe-migrator` 时,GitHub Enterprise Server 上的目标仓库会默认锁定,并且不会自动解锁。

如果导入成功,您可以使用 `ghe-migrator unlock` 命令解锁仓库。有关更多信息,请参阅“将数据迁移到 GitHub Enterprise Server”。

如果导入失败,则您的数据并非全部迁移,我们建议您删除存储库并重试迁移,以防止数据丢失。

如果您确定要使用该存储库,则站点管理员可以使用站点管理员仪表板解锁该存储库。有关更多信息,请参阅 GitHub Enterprise Server 文档中的“锁定存储库”。

源存储库默认情况下未锁定,仅在使用 ghe-migrator add 命令准备存储库以导出时指定了 --lock 参数时才会锁定。要解锁存储库,请使用 ghe-migrator unlock 命令。有关更多信息,请参阅“将数据迁移到 GitHub Enterprise Server”。

由 Enterprise Cloud Importer 锁定的存储库

使用 Enterprise Cloud Importer 时,目标存储库默认情况下会被锁定,并且不会自动解锁。

如果导入成功,您可以通过单击 Enterprise Cloud Importer 中的“解锁”按钮来解锁存储库。

如果导入失败,您无法自行解锁存储库。由于迁移失败意味着并非所有数据都已迁移,因此我们建议您删除存储库并重试迁移,以防止数据丢失。

如果您确定要解锁存储库,请通过 GitHub 支持门户 联系我们。

startImport GraphQL 突变锁定的存储库

使用 startImport GraphQL 突变时,目标存储库默认情况下会被锁定,并且不会自动解锁。

如果导入成功,您可以使用 unlockImportedRepositories GraphQL 突变来解锁存储库。有关文档,请联系您的专家服务或 GitHub 合作伙伴代表。

如果导入失败,您无法自行解锁存储库。由于迁移失败意味着并非所有数据都已迁移,因此我们建议您删除存储库并重试迁移,以防止数据丢失。

如果您确定要解锁存储库,请通过 GitHub 支持门户 联系我们。