【问题标题】:Transferring GitHub repo when we don't have access to the original account当我们无权访问原始帐户时转移 GitHub 存储库
【发布时间】:2022-01-14 11:34:40
【问题描述】:

因此,我们希望将 GitHub 存储库从个人帐户转移到组织。很简单,但唯一的问题是我们不记得该帐户的密码,并且辅助邮箱与我们不再有权访问的工作电子邮件相关联。

当然,我们总是可以手动将代码转移到一个新的 repo,但这样我们就会丢失 repo 的所有问题跟踪和历史记录。或者,我们可以将 repo 分叉给一个新的组织,但我认为它永远被标记为原始 repo 的分叉,对吗?

还有更好的选择吗?

【问题讨论】:

  • 您在有人克隆了遥控器的任何地方都有本地副本吗?你可以用那个。只需push it to a new remote。 github中的版本没有什么特别之处。所有本地版本都是完全相同的。
  • 我认为这是github客户支持的问题
  • @Liam 只是将其推回不会转移问题、拉取请求以及 GitHub 保留的所有其他元数据,这些元数据不属于 Git 存储库本身。
  • @DanHickstein GitHub 迁移工具可能会满足您的需求。 docs.github.com/en/repositories/archiving-a-github-repository/…我之前正在研究将它用于备份目的,但我还没有真正尝试过。
  • 如果您无权访问帐户@joanis,则无法使用迁移工具

标签: git github


【解决方案1】:

.git 目录包含 repo 的所有问题跟踪和历史记录,而不是 GitHub 帐户。因此,只要复制了 .git 目录,您就可以访问日志、过去的提交等。只需确保使用文件资源管理器复制 all 存储库的内容或类似 cp /path/to/repo/. /我的/新的/路径/

要通过 org 帐户使用 repo,只需手动更改电子邮件和来源即可。在您将用于以下所有操作的计算机上,使用ssh-keygen 生成一个 SSH 密钥(通过默认值按 Enter)并进入您在 GitHub 上的 org 帐户,在“设置>SSH 和 GPG 密钥”下,然后添加您帐户的 ssh 密钥。创建一个与您复制的 repo 同名的 repo。

首先,您可能希望删除当前在存储库中设置的任何遥控器。要显示这些遥控器,请使用:

git remote -v

删除它们:

git remote remove <name>

然后添加您组织的 repo 的 ssh 地址并推送到它,如下所示:

git remote add origin git@github.com:<your-org-name>/<your-repo-name>.git
git branch -M main
git push -u origin main

【讨论】:

  • 感谢推荐!但是 .git 目录不可能包含 GitHub 上的 Issues 信息,对吧?我的意思是,我可以在 GitHub 上添加对问题的回复,这不会改变实际的回购...
  • 啊,我明白了。如果您在 github 上跟踪了要保留的问题,不,此方法将不起作用。我认为您唯一的选择是分叉回购,或致电 github 客户支持。祝你好运。
猜你喜欢
  • 2021-04-06
  • 1970-01-01
  • 1970-01-01
  • 2021-01-18
  • 2019-01-12
  • 2012-05-07
  • 2013-10-30
  • 2018-02-04
  • 2019-02-01
相关资源
最近更新 更多