Configurer une origine distante git

180

J'ai les dépôts suivants.

  1. DEV REPO: dans un répertoire de ma machine de développement où j'apporte des modifications
  2. MAIN REPO: référentiel nu sur ma machine de développement vers lequel je pousse les modifications depuis le dépôt de développement
  3. PRODUCTION REPO: référentiel sur la machine hôte pour extraire les mises à jour du référentiel principal

J'avais l'habitude git remote add origin /Users/me/sites/main_repode définir le repo MAIN comme origine du repo DEV. Le référentiel PRODUCTION se trouve sur un hôte distant. Puis-je utiliser une variante de la même commande pour définir le référentiel MAIN comme origine du référentiel PRODUCTION également? Si "oui", alors je suppose que la syntaxe inclurait une adresse IP. À quoi cela ressemblerait-il?

Geai
la source
Vous ne vouliez pas dire "définir le repo PRODUCTION comme origine du repo MAIN"?
Pedro A

Réponses:

289

Utilisation de SSH

git remote add origin ssh://login@IP/path/to/repository

Utiliser HTTP

git remote add origin http://IP/path/to/repository

Cependant, avoir un git pullprocessus de déploiement simple est généralement une mauvaise idée et doit être évité au profit d'un véritable script de déploiement.

Clément Herreman
la source
6
Pourquoi est-ce vraiment une mauvaise idée? Recherche maintenant des exemples de script de déploiement.
Jay
14
Parce que le déploiement signifie souvent (lire «toujours») plus que ce que git pullfaire. Vous devrez peut-être configurer les informations d'identification de la base de données de production, vider le cache, augmenter le numéro de version, sauvegarder l'ancienne version afin de pouvoir revenir en arrière en cas de problème, optimiser / réduire vos actifs (CSS et Js par exemple) et un bazillions d'autres des choses.
Clement Herreman
33
@ClementHerreman - il semble que, d'après votre explication, utiliser git pull n'est pas tant une "mauvaise idée" qu'une solution limitée. Parfois, je trouve que git pull est une solution de déploiement simple et parfaitement efficace lorsque j'ai un scénario simple.
Brady Holt
4
Je pense que vous devez spécifier ssh: // pour la manière ssh, c'est-à-dire git remote add origin ssh: // login @ IP / path / to / repository
kakyo
4
Je pense que si nous modifions la déclaration finale en "est parfois une mauvaise idée" sans caractère gras, ce serait une excellente réponse.
Chris Moschini
104

Pour tous ceux qui viennent ici, comme je l'ai fait, à la recherche de la syntaxe pour changer l' origine vers un emplacement différent, vous pouvez trouver cette documentation ici: https://help.github.com/articles/changing-a-remote-s-url/ . Utiliser git remote addpour faire cela entraînera "fatal: l'origine distante existe déjà."

Bref: git remote set-url origin https://github.com/username/repo

(La réponse marquée est correcte, j'espère juste aider quelqu'un d'aussi perdu que moi ... haha)

philosophe perdu
la source
2
Cette réponse est meilleure pour les personnes souhaitant changer "git remote url" si elle existe déjà. Merci @lostphilosopher
eonist
17

Vous pouvez inclure la branche à suivre lors de la configuration des télécommandes, pour que les choses fonctionnent comme prévu:

git remote add --track master origin [email protected]:group/project.git   # git
git remote add --track master origin [email protected]:group/project.git   # git w/IP
git remote add --track master origin http://github.com/group/project.git   # http
git remote add --track master origin http://172.16.1.100/group/project.git # http w/IP
git remote add --track master origin /Volumes/Git/group/project/           # local
git remote add --track master origin G:/group/project/                     # local, Win

Cela vous évite d'avoir à modifier manuellement votre configuration git ou à spécifier manuellement le suivi des branches.

Michael Thompson
la source