Qwertiy Asked:2020-09-28 02:04:02 +0000 UTC2020-09-28 02:04:02 +0000 UTC 2020-09-28 02:04:02 +0000 UTC 移动一个 git 仓库 772 有一些带有分支的存储库master和develop: git@git.test.com:my-repo-a.git 还有一个空的存储库 git@git.test.com:my-repo-b.git 如何将存储库完全迁移a到b? 完全意味着必须保留所有分支和所有提交。 git 3 个回答 Voted Best Answer Alex Chermenin 2020-09-28T02:11:53Z2020-09-28T02:11:53Z git clone --bare git@git.test.com:my-repo-a.git git fetch origin git remote add new-origin git@git.test.com:my-repo-b.git git push --mirror new-origin git remote rm origin git remote rename new-origin origin 来源: https ://www.smashingmagazine.com/2014/05/moving-git-repository-new-server/ 更新:更正并考虑到评论 aleksandr barakin 2020-09-29T10:17:50Z2020-09-29T10:17:50Z 如果目标服务器能够以拥有包含存储库的目录的用户身份执行 shell 命令(用户git在问题中列出以供说明),则将存储库从源服务器复制到本地计算机,然后再复制到可以避免目标服务器。 使用目标存储创建当前目录: $ cd /путь/к/my-repo-b.git 代表拥有此目录的用户,以某个名称安装源存储库,例如copy: $ git remote add --mirror=fetch copy url-исходного-хранилища 复制信息: $ git remote update copy 全部。如果需要,您可以删除对源存储库的引用: $ git remote remove copy 如果拥有存储库目录的用户不允许启动交互式 shell,但您有能力以 root 身份执行命令,则可以以root身份执行上述操作,但完成后,在不更改当前目录的情况下,您需要使用与当前目录相同的所有者和组安装所有文件/目录,例如,使用以下命令(自然地,来自相同的名称): $ chown -R --reference=. . 如果源服务器和目标服务器是同一台机器,那么您可以简单地复制文件来代替上述所有操作: $ cp -a /путь/к/my-repo-a.git/* /путь/к/my-repo-b.git/ Mikro Koder 2020-01-31T23:15:35Z2020-01-31T23:15:35Z 将现有存储库传输到远程服务器: cd existing_repo git remote rename origin old-origin git remote add origin git@git.test.com:my-repo-b.git git push -u origin --all git push -u origin --tags
来源: https ://www.smashingmagazine.com/2014/05/moving-git-repository-new-server/
更新:更正并考虑到评论
如果目标服务器能够以拥有包含存储库的目录的用户身份执行 shell 命令(用户git在问题中列出以供说明),则将存储库从源服务器复制到本地计算机,然后再复制到可以避免目标服务器。
使用目标存储创建当前目录:
代表拥有此目录的用户,以某个名称安装源存储库,例如
copy:复制信息:
全部。如果需要,您可以删除对源存储库的引用:
如果拥有存储库目录的用户不允许启动交互式 shell,但您有能力以 root 身份执行命令,则可以以root身份执行上述操作,但完成后,在不更改当前目录的情况下,您需要使用与当前目录相同的所有者和组安装所有文件/目录,例如,使用以下命令(自然地,来自相同的名称):
如果源服务器和目标服务器是同一台机器,那么您可以简单地复制文件来代替上述所有操作:
将现有存储库传输到远程服务器: