/ / Pousser sur plusieurs URL git avec set-url et ses pièges - git, gitlab

Pousser vers plusieurs URL git avec set-url et ses pièges - git, gitlab

Je veux installer un serveur gitlab sur mon ordinateur localgitlab cloud comme sauvegarde hors site. Chaque fois qu'un développeur insiste sur son travail, je souhaite qu'il soit transmis aux deux serveurs gitlab. Je vais le faire en utilisant les commandes git suivantes

git remote set-url --add --push origin git://my_local_repo_url
git remote set-url --add --push origin git://my_gitlab_com_repo_url

Je crains cependant que les deux serveurs ne se désynchronise facilement.

  1. Que se passerait-il si l'un des serveurs était en panne pendant la poussée alors l'un réussissait et l'autre échouait? Comment pourrais-je gérer cela?
  2. Que se passe-t-il si un développeur a oublié d'ajouter l'un desles URL distantes, de sorte qu'un seul des serveurs était poussé, puis la deuxième URL distante a été ajoutée. Que se passerait-il lors de la prochaine poussée et comment pourrais-je le gérer?
  3. Quels autres problèmes pourrais-je rencontrer?

Réponses:

1 pour la réponse № 1

Que se passerait-il si l'un des serveurs était en panne pendant la poussée alors l'un réussissait et l'autre échouait? Comment pourrais-je gérer cela?

Comme mentionné dans "tirer / pousser de plusieurs endroits distants", un push a échoué (parce que l'un desrepo, pour quelque raison que ce soit, n’était pas disponible) peut être corrigé au prochain push: les commits qui n’ont pas été poussés la dernière fois sont poussés (en plus des nouveaux) au prochain push.

Même si le développeur ajoute la deuxième télécommande plus tard, tant que cette deuxième télécommande reflète le contenu de la première

Mais le problème est:

  • histoire divergente (lorsque l’une des télécommandes s’engage que vous ne l’ayez pas encore): vous devez vous rebaser au-dessus de origin/master (dans un chercher, origin toujours se référer à la premier url): alors vous pouvez pousser
  • Télécommande divergente (lorsque les deux télécommandes ont des jeux d’engendements différents, en raison de l’historique différente de chacun): push --force à une de ces télécommandes afin de réécrire / réinitialiser son historique.