我在开发服务器上有一个git clone / repo,但我现在正转向另一个。我不想将所有本地分支和更改提交到主存储库,因此如何将oldserver上的所有内容精确复制到newserver?

我试过 oldserver:〜$ scp -rp project newserver:〜/ project

然后我只是得到了“typechange”的负载和负载。尝试在newserver上执行任何操作时出错。

有人说过x-modes,但是在服务器之间移动文件时如何保留呢?

有帮助吗?

解决方案

如果你想要一个git解决方案,你可以试试

git clone --mirror <oldurl> <newurl>

虽然这只适用于裸存储库。

如果这是一个非裸仓库,您也可以进行正常克隆,然后执行以下操作:

git fetch origin
git branch -r | grep '^ *origin/[^ ]*

中间步骤当然可以用5000种不同的方式完成,但那就是一个! (注意在bash中的管道之后不需要连续行\ - 它知道它需要更多输入)

最后,如果你想直接复制,我建议使用rsync而不是scp(可能带有-avz选项?)。 (这些typechange错误究竟是什么?)

| while read rb; do git branch --no-track ${rb#*/} $rb; done git remote rm origin

中间步骤当然可以用5000种不同的方式完成,但那就是一个! (注意在bash中的管道之后不需要连续行\ - 它知道它需要更多输入)

最后,如果你想直接复制,我建议使用rsync而不是scp(可能带有-avz选项?)。 (这些typechange错误究竟是什么?)

其他提示

我实际上已经做到了这一点,而我所做的就是先把回购邮件放在首位,然后将其翻过来。我认为scp -rp也会起作用。

&QUOT; Typechange&QUOT;通常会将符号链接变成文件,反之亦然。两台服务器是否运行相同的操作系统?

您可能还想尝试简单的愚蠢解决方案 - 不要担心typechanges如何到达那里,但让git使用reset命令修复它们:

git reset --hard HEAD

只有在(1)问题都与签出文件有关(而不是存储库结构本身)和(2)您没有对 newserver 进行任何更改时才有意义你需要保留。

鉴于这些警告,当我发现自己遇到同样的问题时,它对我有用,并且它不需要你考虑git的内部或文件传输过程保存属性的程度。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top