Pergunta

Eu tenho um clone/repo Git em um servidor de desenvolvimento, mas agora estou me mudando para outro. Não quero comprometer todas as minhas filiais e mudanças locais no repositório principal, então como posso fazer uma cópia exata de tudo no Oldserver para o Newserver?

eu tentei oldserver:~$ scp -rp project newserver:~/project

Mas então eu apenas recebo muitos erros de "TypeChange" ao tentar fazer qualquer coisa no NewServer.

Alguém disse algo sobre X-Modes, mas como posso preservar isso ao mover arquivos entre servidores?

Foi útil?

Solução

Se você quiser uma solução git, você pode tentar

git clone --mirror <oldurl> <newurl>

Embora isso seja apenas para repositórios nus.

Se este é um repositório não barato, você também pode fazer o clone normal, seguido de algo assim:

git fetch origin
git branch -r | grep '^ *origin/[^ ]*$' |
    while read rb; do git branch --no-track ${rb#*/} $rb; done
git remote rm origin

É claro que o passo do meio pode ser feito de 5000 maneiras diferentes, mas essa é uma! (Observe que a linha de continuação não é necessária após o tubo em Bash - sabe que precisa de mais entrada)

Por fim, sugiro usar o RSYNC em vez de SCP (provavelmente com opções -AVZ?) Se você deseja copiar diretamente. (O que exatamente são esses erros de manobra de digitação?)

Outras dicas

Na verdade, eu fiz isso, e tudo o que fiz foi alctar o repo primeiro e o SCP. Eu pensaria que o SCP -RP também funcionaria.

"TypeChange" normalmente se referiria a coisas como um symblink se tornando um arquivo ou vice-versa. Os dois servidores estão executando o mesmo sistema operacional?

Você também pode querer experimentar a solução burra simples - não se preocupe com a forma como as variadas de TypeChanges chegaram lá, mas vamos corrigi -las com um comando de redefinição:

git reset --hard HEAD

Isso só faz sentido se (1) todos os problemas pertencem aos arquivos de check-out (e não à própria estrutura do repositório) e (2) você não fez nenhuma alteração no Newsserver que você precisa preservar.

Dadas essas advertências, funcionou para mim quando me encontrei com o mesmo problema, e isso não exige que você pense nos internos do Git ou no quão bem seu processo de transferência de arquivos está preservando atributos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top