Wie kann man den Ursprung eines Git-Repos ändern, wenn man Github verlässt?

Lesezeit: 3 Minuten

Benutzer-Avatar
Ben Orozco

Ich hoste ein Projekt in Github, aber jetzt habe ich einen Plan mit Dreamhost erworben, der Shell-Zugriff und Git umfasst.

      Github [Origin]
       /         \
  pull/           \pull
     /push     push\
    /               \  
Laptop           Dreamhost
(cloned)          (cloned)

Ich möchte mein Repo von Github löschen und direkt zu DH pushen.

Wie ändere ich den Ursprung in meinem Laptop und sollte ich den Ursprung in Dreamhost löschen?

Benutzer-Avatar
Clee

git remote rename origin github
git remote add origin <DreamHost-git-URL>
# test and make sure the DreamHost origin works properly for fetch and push
git remote rm github

Ich ziehe es vor, den Befehl „git remote“ zu verwenden, anstatt mit der .git/config-Datei von Hand herumzuschrauben.

  • Ich stimme zu. Ich betrachte das Format von .git/config ein Ausführungsdetail, I stets Verwenden Sie die Tools wie git remote und git config um sicherzugehen, dass ich die Syntax nicht vermassele.

    – Jörg W Mittag

    10. Juni 2010 um 15:10 Uhr

  • Oh +1, weil mir das gefällt. Aber Sie sollten weitere Informationen hinzufügen, wie Sie die Tracking-Zweige nachträglich migrieren können …

    – Hurikan77

    12. Juni 2010 um 19:45 Uhr

  • musste ich hinzufügen git config branch.master.remote origin. Es scheint, als hätte Git diese Variable als Nebeneffekt der Remote-Umbenennung geändert.

    – Daniel Luna

    12. Juli 2011 um 21:41 Uhr

  • Ich musste folgende Befehle ausführen: git config branch.master.remote origin git config branch.master.merge refs/heads/master

    – Joao Hornburg

    15. Februar 2012 um 18:29 Uhr


  • Auch nachdem ich die von @JoaoHornburg erwähnten Schritte ausgeführt hatte, musste ich es tun push origin master beim ersten Push, um einen Master-Branch auf dem neuen Bare-Repo zu erstellen. Nach als git push funktionierte gut.

    – Daniel

    10. Mai 2013 um 15:46 Uhr

Der einfachste Weg ist:

$ git config remote.origin.url <Dreamhost-git-URL>

Sie zeigen die Fernbedienungen danach:

$ git remote -v
origin Dreamhost-git-URL (fetch)
origin Dreamhost-git-URL (push)

  • Ja, scheint die beste Lösung zu sein.

    – Profpatsch

    13. März 2013 um 14:27 Uhr

  • Ich glaube nicht, dass diese Lösung in den veröffentlichten Versionen von Git zu dem Zeitpunkt existierte, als ich meine Antwort schrieb, aber es scheint definitiv einfacher zu sein. 🙂

    – Clee

    21. Oktober 2015 um 17:23 Uhr

Benutzer-Avatar
Adam Dymitruk

Am einfachsten bearbeiten Sie Ihre .git/config-Datei auf Ihrem Laptop. Suchen Sie einfach nach Ihrer Github-URL und ersetzen Sie sie durch die von DreamHost. Stellen Sie sicher, dass Ihr öffentlicher ssh-Schlüssel auf Dreamhost eingestellt ist. Jetzt können Sie origin master pushen und Sie haben Ihr Dreamhost-Repository gefüllt.

Sie können Origin auf Dreamhost löschen, dies ist jedoch nicht erforderlich.

Stellen Sie außerdem sicher, dass das vorhandene Repository leer ist. Standardmäßig können Sie kein Push in Nicht-Bare-Repositories durchführen.

  • Nun, wie Sie sagten, es ist ein Non-Bare-Repo, ich bin ein wenig verwirrt. Was nun ?

    – Ben Orozco

    10. Juni 2010 um 3:48 Uhr

  • Gefunden: stackoverflow.com/questions/1784506/…

    – Ben Orozco

    10. Juni 2010 um 3:55 Uhr

  • Wie oben, alles, was Sie brauchen, ist die Option –bare, wenn Sie das klonen, was ein Upstream-Repo sein soll.

    – Adam Dymitruk

    10. Juni 2010 um 5:01 Uhr

  • Nun, Sie KÖNNEN auf Non-Bare-Repos pushen – aber Sie SOLLTEN WIRKLICH NICHT!

    – Hurikan77

    12. Juni 2010 um 19:44 Uhr

  • Danke für den Hinweis. Ich dachte, es wäre so einfach wie das Ändern der Konfiguration, brauchte nur eine Bestätigung.

    – der Wissenschaftler

    23. November 2012 um 7:16 Uhr

Der beste Weg ist git remote set-url origin <new-url>

Am einfachsten ist es, Ihre zu bearbeiten .git/config Datei, die auflistet, wo der Ursprung lebt. Sie können es testen, indem Sie a ausführen git fetch

Sie können die Remote-Referenzen auf der Dreamhost-Seite löschen, wenn Sie möchten, in derselben Datei.

warum nicht einfach:

git remote remove origin

git remote add origin <Dreamhost-git-URL>

git push -u origin --all --tags

1298670cookie-checkWie kann man den Ursprung eines Git-Repos ändern, wenn man Github verlässt?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy