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?


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.


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)


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 user@somesite.com:group/project.git   # git
git remote add --track master origin user@172.16.1.100: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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.