Wie trenne ich Alternativen nach git clone –reference?

Lesezeit: 2 Minuten

Ich benutze git clone --reference um den Netzwerkverkehr über eine langsame Verbindung zu reduzieren.

Jetzt, git-cloneDie Manpage von weist auf die Gefahren der Verwendung hin und schlägt vor git repack -a um den Link zu unterbrechen, was ich unmittelbar nach dem Klonen tue.

Was ich gerne wissen würde, ist – nachdem ich das Repack durchgeführt habe, ist es sicher, es einfach zu löschen .git/objects/info/alternates oder gibt es dafür einen richtigen git-befehl?

Vielen Dank

Beachten Sie, dass git clone hat jetzt eine neue --dissociate Option, die dies tut. Es wurde in Git 2.3 hinzugefügt: https://github.com/blog/1957-git-2-3-has-been-released

Die Option ruft einfach git repack -a -d und löscht .git/objects/info/alternates. Also ja, es ist sicher. (Quelle: https://github.com/gitster/git/commit/d35c8027937546e6b22a2f28123f731c84e3b380)

  • Wenn Sie Git LFS verwenden, --dissociate verhindert, dass der Klon LFS-Objekte abruft, und verursacht einen Fehler. Sie müssen tun git clone --reference wie gewohnt und führen Sie die manuellen Schritte des Laufens durch git repack -a -d und Löschen der alternates Datei. Für Nicht-LFS-Repos ist diese Antwort die am besten unterstützte Methode.

    – Phil

    1. Juni 2018 um 13:01 Uhr


  • @Phil Gibt es eine Erklärung warum? Ich bin neugierig, ich habe mir den Quellcode für dissoziieren angesehen, und es sieht so aus, als würde er wirklich nur das Äquivalent dieser beiden Befehle ausführen, also sollte es theoretisch keinen Unterschied geben. Obwohl der Code zum Löschen der Datei (Verknüpfung aufheben) so aussieht, als würde er nach genügend fehlgeschlagenen Versuchen (github.com/git/git/blob/…) Aber ich bin mir nicht sicher, ob es das ist, was es anders macht.

    – Anomaler Außenseiter

    30. September 2019 um 8:02 Uhr

  • @AnomalousUnderdog Tut mir leid, ich habe ein paar hundert Mal geschlafen, seit ich diesen Kommentar geschrieben habe … Es fühlt sich an, als hätte ich diese Frage zum ersten Mal gesehen, und für mich ist alles griechisch. Mann Git ist komplex…

    – Phil

    30. September 2019 um 10:02 Uhr

  • @Phil ah, keine Sorge, zumindest funktioniert es immer noch manuell (ich habe es erst vor ein paar Stunden gemacht). Sicher ist sicher 🙂

    – Anomaler Außenseiter

    30. September 2019 um 11:42 Uhr

Okay, also ich habe es herausgefunden. Die Antwort ist ja, es ist sicher, Alternativen direkt zu löschen. Und nein, dafür gibt es keinen git-Befehl.

http://thread.gmane.org/gmane.comp.version-control.git/141161/focus=141199

Ich weiß, es ist nicht getan, Ihre eigene Frage zu beantworten, aber wir müssen weitermachen!

  • Zu Ihrer Information, es ist in Ordnung, Ihre eigenen Fragen zu stellen und zu beantworten.

    Benutzer456814

    22. April 2014 um 6:27 Uhr

  • Tatsächlich bin ich dankbar, dass Sie die Antwort aufgezeichnet haben, anstatt einfach weiterzumachen.

    – Finger

    4. Oktober 2014 um 12:40 Uhr

1251890cookie-checkWie trenne ich Alternativen nach git clone –reference?

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

Privacy policy