将git repo移动到另一台服务器
收藏

我在开发服务器上有一个git clone/repo,但现在我要转到另一个。我不想将所有本地分支和更改提交到主存储库,所以如何将oldserver上的所有内容精确复制到newserver?
我试过oldserver:~$ scp -rp project newserver:~/project
但当我尝试在newserver上做任何事情时,我只会得到大量的“typechange”错误。
有人说了一些关于x模式的事情,但是当在服务器之间移动文件时,我怎样才能保留它呢?


最佳答案:

如果您想要git解决方案,可以尝试

git clone --mirror <oldurl> <newurl>

尽管这只适用于裸存储库。
如果这是一个非裸机回购协议,您还可以执行正常的克隆,然后执行如下操作:
git fetch origin
git branch -r | grep '^ *origin/[^ ]*$' |
    while read rb; do git branch --no-track ${rb#*/} $rb; done
git remote rm origin

中间的步骤当然可以用5000种不同的方法来完成,但这就是其中之一!(请注意,在bash中的管道之后不需要续行-它知道它需要更多的输入)
最后,我建议使用rsync而不是scp(可能有-avz选项?)如果你想直接复制。(这些类型更改错误到底是什么?)

    公众号
    关注公众号订阅更多技术干货!