Erstellen Sie eine lokale Kopie eines entfernten Git-Repositorys

Lesezeit: 4 Minuten

Ich bin mit der Terminologie oder den Praktiken und Verfahren der Versionskontrolle nicht sehr vertraut.

Hier ist, was ich tun möchte:

  1. Ich möchte einen Ordner aus einem Git-Repository aus dem Internet herunterladen. Ist Klonen der richtige Weg? WERDEN beim Klonen nicht die unnötigen Metadatendateien erhalten? Gibt es eine Möglichkeit, einen “sauberen” Download durchzuführen?

  2. Ich möchte ein lokales Repository einrichten, das diesen Ordner enthält, für den ich jetzt die Versionskontrolle verwenden kann. Das heißt, wenn ich einen Commit durchführe, wird mein lokales Repository aktualisiert.

  3. Schließlich möchte ich, dass dieses lokale Repo im lokalen Netzwerk zugänglich ist, damit ich es auch von jedem anderen Computer im LAN herunterladen kann.

Benutzer-Avatar
VonC

  1. Klonen ist der richtige Weg, lädt aber alle Verzeichnisse Ihres Remote-Git-Repos herunter.
    Sehen git clone der Git-Referenz.
  2. Der Klonbefehl erstellt ein Repo mit einem bereits ausgecheckten Arbeitsbaum und einer .git-Datei, die Ihr vollständiges Repo darstellt
  3. Sie müssen mindestens einen freigegebenen Pfad haben, damit andere Ihr Repo klonen/ziehen/schieben können.
    Sehen git lokales Protokoll.

Wenn Sie mit diesen Operationen nicht vertraut sind, würde ich Ihnen empfehlen, die einfachen Übungen zu befolgen, die von vorgeschlagen werden Git Immersion.

Benutzer-Avatar
foobar

Sie können keine einzelnen Dateien oder Ordner aus einem Git-Repo herunterladen, da Git den vollständigen Status eines Projekts als Ganzes verfolgt, nicht nur einzelne Dateien. Es besteht die Möglichkeit, nur einen begrenzten Satz von Revisionen (als flacher Klon bezeichnet) aus einem entfernten Repository zu klonen, aber solche Klone sind auf eine begrenzte Anzahl von Vorgängen beschränkt, zum Beispiel können Sie nicht von einem flachen Klon klonen oder etwas von ihm pushen so ein Repo.

Wenn Sie die Größe eines Git-Repos stört, können Sie das tun git gc um git dazu zu bringen, die Objektdatenbank neu zu organisieren, was manchmal Größenverbesserungen erhalten kann.

Wenn Sie einen lokalen Cache haben möchten, können Sie verwenden git clone --mirror $REMOTE_URL um einen Klon zu erstellen, der

  • verfolgt alle entfernten Branches (siehe Was ist der Unterschied zwischen git clone –mirror und git clone –bare)
  • ist ein reines Repo (=hat keine Arbeitskopie, siehe gitready.com oder diese SO-Frage, warum dies eine gute Idee für ein Cache-Repo ist)
  • fungieren als lokaler Cache oder als Staging-Repo

Sie können neue funktionierende Repos aus diesem lokalen Cache-Repo klonen und entweder direkt in das Upstream-Repo pushen (Sie müssen git remote add upstream $REMOTE_URL in Ihrer Arbeitskopie, um den Link zum Upstream-Repo hinzuzufügen, danach können Sie git push upstream), oder Sie können in das lokale Cache-Repository pushen und von dort in das Upstream-Repository pushen.

Während git clone das Richtige für die Schritte 1 und 2 ist, müssen Sie möglicherweise einige der Git-Bücher lesen, z. B. Progit / Community-Buch usw., um einen guten Eindruck von der besten Vorgehensweise für Schritt 3 und der Git-Philosophie zu bekommen.

Git als verteilt VCS bemüht sich sehr, das “einzelne zentrale Repository” zu vermeiden, das Ihr “lokales Repo, auf das im lokalen Netzwerk zugegriffen werden kann” vorschlagen könnte. Sie können ein Bare-Repo im Netzwerk haben, das dies zulässt viele davon zu pushen/ziehen, aber das ist nicht dasselbe wie ein lokales Repo im Netzwerk mit Arbeitsverzeichnis und nur du Verwenden Sie es, als wäre es ein lokales Laufwerk.

  • Okay. Ich möchte an meinem Projekt von zwei verschiedenen Computern aus arbeiten und ich möchte, dass sie synchron bleiben. Also sollte ich das Repository auf einer der Maschinen (z. B. primär) ablegen, es auf der anderen Maschine klonen (z. B. sekundär), einen “Remote” -Link von der primären zur sekundären hinzufügen und dann Pushes und Pulls ausführen, um sie synchron zu halten. Ist das der richtige Weg?

    – AnkurVj

    22. August 2011 um 8:46 Uhr

  • Wenn es nur Sie sind und Sie unzusammenhängend von den beiden Computern aus arbeiten (dh Sie verwenden nie beide gleichzeitig, auch bekannt als angemeldet), dann ist es sinnvoll, das Repo auf dem Netzlaufwerk zu haben, und auf diese Weise ist es immer synchron. egal von wo aus Sie sich einloggen. Offensichtlich werden Sie einige Netzwerkverzögerungen erleiden, und Sie müssen Backups und deren Sicherheit gewährleisten, aber es vermeidet das Paffen mit endlosen Klonen / Pushs / ​​Pulls.

    – Philipp Oakley

    22. August 2011 um 11:21 Uhr

Ja, ‘Git Clone’ ist der richtige Weg. Dadurch erhalten Sie alle Daten und können Commits durchführen. Solange das neue Repo im LAN sichtbar ist, sollten andere Computer auch davon klonen können.

1186730cookie-checkErstellen Sie eine lokale Kopie eines entfernten Git-Repositorys

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

Privacy policy