J'ai deux serveurs exécutant git, une instance principale avec gibier installé et un autre sur un nuage. Je voudrais les garder égaux. Chaque poussée que j'effectue sur ma machine locale doit aller vers les deux serveurs ou la synchronisation du serveur principal avec le cloud. Comment puis-je le faire? Y a-t-il un moyen simple? Devrait-il être fait sur ma machine locale ou sur le serveur principal?Comment pousser git vers deux serveurs (miroir)
Répondre
Vous pouvez ajouter plusieurs URL à une seule télécommande. Ce que vous devez faire est, sur votre machine locale, tout d'abord créer un correspondant distant au serveur gitorious:
git remote add -m master remotename ssh://gitorious-server/path
Vous devez ajouter à nouveau l'URL du serveur gitorious comme une URL push explicite:
git remote set-url --add --push remotename ssh://gitorious-server/path
puis faire la même chose pour le serveur cloud:
git remote set-url --add --push remotename ssh://cloud-server/path
Cela devrait mettre en place une configuration où chaque fois que vous exécutez git push
localement, votre chang es seront poussés vers les deux serveurs. Mais lorsque vous exécutez git pull
(ou git fetch
), il ne récupère que depuis le serveur Gitorious. Cela devrait être tout ce qui est nécessaire, si les serveurs doivent rester synchronisés.
Si vous ne poussez que vers l'un ou l'autre serveur à partir de cette machine locale particulière, alors c'est tout ce dont vous avez besoin. Mais si vous poussez sur l'un ou l'autre serveur à partir d'un autre ordinateur, vous devrez faire la même configuration sur chacun de ces autres ordinateurs. S'il y a suffisamment d'ordinateurs pour que cela devienne difficile, ou si d'autres personnes ont un accès en écriture aux deux référentiels et que vous ne leur faites absolument pas confiance pour obtenir la configuration correcte, vous feriez mieux de faire quelque chose du côté serveur. Ce serait la méthode de hook post-réception que manojlds mentioned. Pour être clair, si vous utilisez la méthode post-réception, ne pas utiliser la méthode à distance double URL décrite dans la partie précédente de mon message.
Le moyen idéal serait de configurer un crochet post-receive
sur votre repo gitorious qui pousse à votre repo nuage.
manière la plus simple serait d'écrire une fonction bash et l'appliquer dans votre ~/.profile
ou ~/.bashrc
ou ~/.bash_profile
(en supposant Unix) exemple:
function gitpushall {
git push -u origin master
git push -u foo master
}
Ensuite, exécutez source .profile
pour l'appliquer à votre login et exécuter gitpushall
- 1. Git SSH "Autorisation refusée" entre deux serveurs
- 2. Comment pousser deux branches vers deux télécommandes GitHub séparées?
- 3. Pousser vers une autre branche Git
- 4. Git: Pousser vers un dépôt modifié
- 5. Pousser l'ancien code vers le dépôt git
- 6. Git - pousser vers le dépôt distant
- 7. pousser le dépôt git vers le serveur
- 8. Impossible de pousser vers le dépôt Git
- 9. Pousser le dépôt git existant vers gitolite
- 10. Impossible de pousser vers mon dépôt git
- 11. Miroir Subversion avec GIT
- 12. git Miroir svn
- 13. Comment rendre l'accès aux données aux utilisateurs? Lorsque les deux serveurs sont dans MIROIR
- 14. pousser le code vers les serveurs Windows de manière scriptable
- 15. Git gui: comment pousser vers une branche distante?
- 16. Comment faire pour pousser vers un dépôt Git non-nu?
- 17. Pousser vers Github impossible
- 18. Git miroir local et le dépôt
- 19. conditions de course si deux clients git svn rebase et git push au même repo git?
- 20. Deux TrackBar miroir
- 21. Impossible de pousser la branche locale vers le Git distant
- 22. Git: Pousser vers un dépôt distant avec un message
- 23. git sous-module pousser?
- 24. Pousser à git (senior dev)
- 25. Pousser vers la même télécommande git en utilisant deux URL différentes
- 26. Impossible de pousser le projet github vers l'azur avec git
- 27. Pousser une nouvelle branche vers google.com git repository
- 28. Pousser une branche vers un dépôt distant dans git
- 29. Utilisation de TortoiseHg pour pousser vers un référentiel git authentifié
- 30. git pousser maître heroku
Salut, Avez-vous un exemple de crochet? – dextervip