Einrichten eines Git-Remote-Ursprungs

179

Ich habe die folgenden Repos.

  1. DEV REPO: In einem Verzeichnis auf meinem Entwicklungscomputer, in dem ich Änderungen vornehme
  2. MAIN REPO: Bare Repository auf meinem Entwicklungscomputer, auf das ich Änderungen von Dev Repo übertrage
  3. PRODUCTION REPO: Repository auf dem Host-Computer, um Updates vom Haupt-Repo abzurufen

Ich habe git remote add origin /Users/me/sites/main_repodas MAIN-Repo als Ursprung für das DEV-Repo festgelegt. Das PRODUCTION-Repo befindet sich auf einem Remote-Host. Kann ich eine Variation desselben Befehls verwenden, um das MAIN-Repo auch als Ursprung für das PRODUCTION-Repo festzulegen? Wenn "Ja", dann würde die Syntax vermutlich eine IP-Adresse enthalten. Wie würde das aussehen?

Jay
quelle
Meinten Sie nicht "das PRODUCTION-Repo als Ursprung für das MAIN-Repo festlegen"?
Pedro A

Antworten:

288

Verwenden von SSH

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

Verwenden von HTTP

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

Ein einfacher git pullBereitstellungsprozess ist jedoch normalerweise eine schlechte Idee und sollte zugunsten eines echten Bereitstellungsskripts vermieden werden.

Clement Herreman
quelle
6
Warum ist es eine wirklich schlechte Idee? Führen Sie jetzt einige Suchen nach Beispielen für Bereitstellungsskripte durch.
Jay
14
Weil das Bereitstellen oft mehr bedeutet als nur das, was zu git pulltun ist ("immer" lesen) . Möglicherweise müssen Sie die Anmeldeinformationen für die Produktions-DB einrichten, den Cache leeren, die Versionsnummer erhöhen, die ältere Version sichern, damit Sie ein Rollback durchführen können, wenn etwas schief geht, Ihre Assets (z. B. CSS und Js) und eine Unmenge anderer optimieren / minimieren Dinge.
Clement Herreman
33
@ClementHerreman - Basierend auf Ihrer Erklärung scheint die Verwendung von Git Pull weniger eine "schlechte Idee" als vielmehr eine begrenzte Lösung zu sein. Manchmal finde ich, dass Git Pull eine perfekt effektive, einfache Bereitstellungslösung ist, wenn ich ein einfaches Szenario habe.
Brady Holt
4
Ich denke, Sie müssen ssh: // für den ssh-Weg angeben, dh git remote add origin ssh: // login @ IP / path / to / repository
kakyo
4
Ich denke, wenn wir die endgültige Aussage in "ist manchmal eine schlechte Idee" ändern, wäre dies eine ausgezeichnete Antwort.
Chris Moschini
104

Für alle, die wie ich hierher kommen und nach der Syntax suchen, um den Ursprung an einen anderen Ort zu ändern , finden Sie diese Dokumentation hier: https://help.github.com/articles/changing-a-remote-s-url/ . Wenn git remote addSie dies verwenden, wird "fatal: Remote-Ursprung existiert bereits".

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

(Die markierte Antwort ist richtig, ich hoffe nur, jemandem zu helfen, der so verloren ist wie ich ... haha)

verlorener Philosoph
quelle
2
Diese Antwort ist besser für Leute, die "git remote url" ändern möchten, wenn es bereits existiert. Danke @lostphilosopher
Eonist
17

Sie können den Zweig einschließen, der beim Einrichten von Fernbedienungen verfolgt werden soll, damit die Dinge wie erwartet funktionieren:

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

Dies verhindert, dass Sie Ihre Git-Konfiguration manuell bearbeiten oder die Zweigverfolgung manuell festlegen müssen.

Michael Thompson
quelle