Git-Repository von einer Maschine zur anderen

Lesezeit: 4 Minuten

Benutzer-Avatar
Shaun

Ich habe also ein Git-Repository, das ich irgendwann gezogen habe, und dieses Repository befindet sich auf einem Server. Ich habe keinen Zugriff auf das ursprüngliche Repository, aus dem ich es gezogen habe. Wie bekomme ich den Code vom vorhandenen Server auf einen anderen Computer?

EDIT 1: Also so sieht es aus:

  • COMPUTER A: Das Git-Repository, aus dem ich ursprünglich ausgecheckt habe. Darauf habe ich keinen Zugriff mehr.
  • COMPUTER B: Ein gemeinsam genutzter Server, auf dem ich den Code ausgecheckt habe.
  • COMPUTER C: Ein lokaler Laptop.

Kann ich dieses Verzeichnis einfach kopieren, ohne git zu verwenden, oder kann ich git verwenden, um es von B nach C zu klonen?

Dies wird erreicht, indem ein Klon des Repositorys erstellt wird, das sich auf COMPUTER B befindet, indem der Befehl ausgeführt wird git clone auf COMPUTER C, wo das geklonte Repository erstellt werden soll. Das Klonen in Git kann mit mehreren Protokollen erfolgen, darunter ssh, https, git; und diese erfordern ein entsprechendes Setup für die git clone Befehl zum Erfolg.

Der einfachste Ansatz besteht darin, den Git-Server auf COMPUTER B mit diesem Befehl zu starten:

> git daemon

Um Hilfe zum obigen Befehl zu erhalten, führen Sie aus git help daemon

Legen Sie dann eine Markierungsdatei im .git-Ordner des Repositorys auf COMPUTER B ab, um dem Git-Server die Berechtigung zu erteilen, den Klonbefehl auf diesem Repository auszuführen. Dies geschieht durch:

> cd <repository root>/.git
> touch git-daemon-export-ok

Führen Sie nun von einem Terminal auf COMPUTER C die folgenden Befehle aus:

> cd <folder in which to create the cloned repository>
> git clone git://<ip address of COMPUTER B>/<full path of the repository on COMPUTER B>

Dadurch wird das geklonte Repository auf COMPUTER C erstellt.

  • Es gibt einen Fehler: Zugriff verweigert oder Repository nicht exportiert.

    – Abhishek Jain

    15. März 2016 um 13:15 Uhr

  • Ich habe ‘Verbindung verweigert’ erhalten. Wie kann ich Git-Pemission in Git-Repos einrichten?

    – Chan-Kim

    29. März 2017 um 12:56 Uhr

Sie können entweder vom Netzwerkspeicherort ziehen oder das gesamte Verzeichnis (mit dem .git-Ordner) auf den anderen Computer kopieren.

Sie können es einfach vom Server klonen, vorausgesetzt, Sie haben Zugriff auf den Speicherort des Klons – die Macht der Verteilung 😉

  • Ich bin mir nicht sicher, ob ich Zugriff darauf habe, wo der Klon gespeichert ist. Ich bin mir auch nicht sicher, wie ich den ursprünglichen Codesatz gezogen habe.

    – Schaun

    19. Januar 2010 um 3:18 Uhr

  • Ich denke, Matt will es von Computer B (“vorhandener Server”) auf Computer C (“einen anderen Computer”) klonen. Computer A ist derjenige, auf den Sie keinen Zugriff mehr haben. git clone Eintrag im Handbuch: kernel.org/pub/software/scm/git/docs/git-clone.html

    – matt b

    19. Januar 2010 um 3:20 Uhr

  • Haben Sie dann lokal einen Klon auf Ihrem Computer? Sie können davon genauso klonen; Die Repositories enthalten alle dieselben Informationen, modulo aller Änderungen seit dem letzten Abrufen.

    – Matt Enright

    19. Januar 2010 um 3:20 Uhr

  • Ich habe keinen Klon auf meinem Computer lokal nein. Nur auf der ursprünglichen Workstation, auf die ich den Code ursprünglich gezogen habe. Lassen Sie mich die Frage mit weiteren Informationen bearbeiten.

    – Schaun

    19. Januar 2010 um 3:22 Uhr

  • Ja, basierend auf Ihrer Bearbeitung können Sie von Computer B nach C klonen, wie @matt b sagte. Das ist mit “verteilter Quellcodeverwaltung” gemeint – es gibt keinen Unterschied zwischen dem Klonen von B oder von A auf C, und es ist genauso einfach, A später als Remote zu C hinzuzufügen, wenn Sie wieder Zugriff erhalten und dies zum “Haupt” machen möchten ‘ Upstream-Repository.

    – Matt Enright

    19. Januar 2010 um 3:32 Uhr

Sie können von Computer C ausführen:

git clone username@computer_B:path/to/root/of/repository

Angenommen, auf Computer B läuft ein SSH-Server. Ansonsten werden andere Protokolle unterstützt (file://, http://, \\computer_B (NetBios), …)

Wenn jemand Probleme mit dem Klonen hat, habe ich einfach Folgendes auf dem Computer verwendet, auf den die App geklont werden soll:

  1. Gehen Sie in CMD zum Ordner, in den Ihre App beispielsweise geklont werden soll cd C:/my_apps/
  2. Melden Sie sich bei github an und gehen Sie zu der App, die Sie klonen möchten, drücken Sie die grüne Taste „Klonen oder herunterladen“, Sie sehen den SSH-Link, kopieren Sie ihn.
  3. im CMD-Lauf git clone [email protected]:user/my-app.git (verwenden Sie den kopierten SSH-Link)

Fertig

Benutzer-Avatar
sdot257

Du meinst, du willst es auf einen anderen Computer klonen?

Wie wäre es mit:

git clone ssh://myserver/path/to/myproject.git 

Wenn ich die Frage richtig verstehe, möchten Sie nur den Verlauf des Codes von B nach C übertragen. Da Git ein dezentrisches Modell verwendet, hat B den vollständigen Verlauf des Codes bis zum letzten Synchronisierungspunkt zwischen B und A.

Mir fallen drei Methoden ein, wenn Sie nur den Codeverlauf von B nach C übertragen möchten:

  • Direktkopie/rsync/etc. Kopieren Sie einfach alle Dateien und Strukturen in \B-machine\code.git nach \C
  • git clone: ​​Dies ist die beste Wahl, wenn C über http oder ssh auf B zugreifen kann
  • git bundle: git unterstützt den Bundle-Befehl, und nach dem Bundle kopieren Sie die /rsync/ftp/scp-Bundle-Datei nach C

1116840cookie-checkGit-Repository von einer Maschine zur anderen

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

Privacy policy