Skip to main content

关于锁定的存储库

可以锁定存储库以防止更改,通常为了进行迁移。

关于锁定的存储库

将存储库迁移到 GitHub 产品或从中迁移存储库时,原始存储库和目标存储库可能会被“锁定”以进行迁移。 当存储库锁定时,无法对该存储库进行任何更改,例如推送提交、创建问题或对拉取请求进行注释。

迁移期间是否锁定存储库取决于所使用的工具,以及运行迁移时选择的选项。 当存储库被锁定时,GitHub 上的存储库页面上会显示包含以下文本的横幅:

当前正在迁移此存储库。 进行迁移时,该存储库处于锁定状态。

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

通过 GitHub Enterprise Importer 锁定的存储库

进行迁移时,GitHub Enterprise Importer 会锁定对目标存储库的访问。 如果迁移成功完成,存储库将自动解锁。 但是,如果迁移时出现问题(包括迁移失败),存储库可能会保持锁定状态。

默认情况下,GitHub Enterprise Importer 不会锁定源存储库。 仅当你在 GitHub CLI 中指定 --lock-source-repo 选项或在 startRepositoryMigration GraphQL 变更中指定 lockSource 属性时,才会锁定源存储库。

注意:除非确定以后不会解锁源存储库,否则不建议锁定这些存储库。 请考虑改为对存储库进行存档。 有关详细信息,请参阅“存档仓库”。

有关如何解锁 GitHub Enterprise Importer 锁定的存储库的信息,请参阅“使用 GitHub Enterprise Importer 排查迁移问题”。

通过“组织迁移”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 支持