Question

J'ai un git clone / repo sur un serveur de développement, mais je passe maintenant à un autre. Je ne veux pas valider toutes mes branches locales et les modifications apportées au référentiel principal. Comment puis-je faire une copie exacte de tout sur oldserver sur newserver?

J'ai essayé oldserver: ~ $ scp-serveur de presse de projet rp: ~ / project

mais dans ce cas, je reçois simplement des charges de " typechange " erreurs en essayant de faire quelque chose sur le serveur de news.

Quelqu'un a parlé des modes x, mais comment puis-je le conserver lors du transfert de fichiers entre serveurs?

Était-ce utile?

La solution

Si vous voulez une solution git, vous pouvez essayer

git clone --mirror <oldurl> <newurl>

bien que cela ne concerne que les référentiels nus.

S'il s'agit d'un rapport non-nu, vous pouvez également créer le clone normal, suivi de quelque chose comme ceci:

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

L’étape intermédiaire peut bien sûr être réalisée de 5000 façons différentes, mais c’est un! (notez que la ligne de continuation \ n'est pas nécessaire après le tube de bash - il sait qu'il a besoin de plus d'entrées)

Enfin, je suggérerais d’utiliser rsync au lieu de scp (probablement avec les options -avz?) si vous voulez copier directement. (Quelles sont exactement ces erreurs de changement de type?)

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

L’étape intermédiaire peut bien sûr être réalisée de 5000 façons différentes, mais c’est un! (notez que la ligne de continuation \ n'est pas nécessaire après le tube de bash - il sait qu'il a besoin de plus d'entrées)

Enfin, je suggérerais d’utiliser rsync au lieu de scp (probablement avec les options -avz?) si vous voulez copier directement. (Quelles sont exactement ces erreurs de changement de type?)

Autres conseils

Je l’ai fait et tout ce que j’ai fait, c’est d’abord de commencer par le repo et de le retourner. Je pense que scp -rp fonctionnerait aussi bien.

" Typechange " se réfère normalement à des choses comme un lien symbolique devenant un fichier ou vice-versa. Les deux serveurs utilisent-ils le même système d'exploitation?

Vous pouvez également essayer la solution simple et idiote - ne vous inquiétez pas de la façon dont les typechanges sont arrivés là, mais laissez git les résoudre avec une commande de réinitialisation:

git reset --hard HEAD

Cela n’a de sens que si (1) les problèmes concernent tous les fichiers extraits (et non la structure même du référentiel) et (2) vous n’avez apporté aucune modification à serveur de nouvelles . vous devez préserver.

Compte tenu de ces mises en garde, cela a fonctionné pour moi lorsque je me suis retrouvé avec le même problème, et cela ne vous oblige pas à penser aux éléments internes de git ou à la manière dont votre processus de transfert de fichiers préserve les attributs.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top