Git克隆—镜像选项复制所有内容,但不包括钩子,发布,问题和见解?



我一直在使用以下命令将repos从一个服务器迁移到另一个服务器。这组命令复制代码、分支、标签、历史和提交。但是它不能复制Pull-Requests, release(在标签中),Hooks, Issues, Insights。

git clone—mirror git@server.A.com:org/repoA.git

git remote set-url—push origin git@server.B:org/repoB.git

git push—mirror

输入图片描述

是否有办法复制这些(Pull-Requests, release, Hooks, Issues, Insights) ?截图附上当一个repo从服务器a迁移到服务器b

Pull Requests不是Git的一部分,1所以不能这样复制。2

Hooks不是存储库的一部分,3所以不能这样复制它们。

标签是存储库的部分,并且已经通过这种方式复制。是否以及如何让GitHub创建"发布";从现有的标签是到GitHub。这些说明允许你手动操作;也许gh工具允许更自动化的方法。文档乍一看并没有说太多,但如果你仔细看,你可能会发现更多。

问题和见解,如pull请求,在github端数据库中实现,不被镜像克隆复制。

很可能使用gh(和/或扩展它来使用GitHub API)会让你更接近你的目标。


1Git有一个request-pull命令,但是它发送电子邮件。你正在考虑的这种pull请求是保存在GitHub上的数据库的一部分,在Git之外。

2作为pull请求的一部分的提交可以被复制,但是实现它们的引用从你的端是不可写的,即使它们是,包含pull请求信息的数据库也会丢失。

3更准确地说,是故意不复制.git/hooks/目录中的钩子。如果这些钩子是指向存储库中脚本的符号链接,那么您只需要在git push --mirror之后的目标存储库中创建这些相同的符号链接。但是这些钩子不能通过GitHub访问;相反,请参阅gh程序和GitHub API。看起来还没有办法从gh中摆弄这些

最新更新