2016-12-31 5 views
1

Es gibt ein Repository, aus dem ich erstellen möchte, aber wenn ich das Repository klone, bekomme ich die Ergebnisse in einem instabilen Programm. Die letzte Version der Quelle, die sie getaggt haben (1.2), ist stabil, aber ich bin mir nicht sicher, wie ich sie mit git herunterladen soll. Von dem, was ich bei der Suche nach Antworten gelesen habe, kann ich zuerst das Repository klonen und dann checkout verwenden, um zum Tag zu wechseln;Wie lade ich ein bestimmtes Git-Repository-Tag herunter?

git clone https://github/project/project.git

cd project

git checkout tags/1.2

Diese freistehenden Kopf-Modus führt, die ich nicht sicher bin, ist ein Problem, oder nicht. Was ich jedoch nicht bekomme, ist, wenn ich es auschecke, sagt es, dass es zu dem Tag im "Arbeitsbaum" wechselt. Bedeutet das nun, dass, wenn ich es mit den Scripts, die das Dev-Team dazu enthält, erstellt wird, es nur den 1.2-Quellcode erstellt? Ich tat es und ich bekam ein Programm, das immer noch instabil schien. Jedoch kann ich nicht sagen, welche Version es ist, weil es nicht sagt (sie reparieren das in einer späteren Version).

Also habe ich das richtig gemacht? Oder bell ich den falschen Baum an, indem ich Kasse benutze. Ich meine, idealerweise würde ich gerne die Quelle für dieses Tag herunterladen können, ohne das gesamte Repository klonen zu müssen, aber ich kann nicht herausfinden, wie das geht, wenn es überhaupt möglich ist.

Antwort

0

Soweit ich Ihnen sagen kann, machen Sie es richtig.

Das Herunterladen des Repos enthält alle Tags, sofern Sie git nicht konfiguriert haben, um Tags herunterzuladen.

Wenn Sie ein Tag auschecken (unter Verwendung von git checkout 1.2 ist ausreichend), landen Sie tatsächlich in Datakopf-Modus. Aber das sollte kein Problem sein. (Führen Sie git checkout master, um zu HEAD zurückzukehren).

Nach dem Auschecken des Tags sollte sich Ihr Arbeitsverzeichnis jetzt an dem Punkt befinden, an dem das Projekt war, als das Release getaggt wurde.

Was Sie an dieser Stelle tun möchten, ist, alle generierten oder zwischengespeicherten Dateien zu entfernen und das Projekt von Grund auf neu zu erstellen. Wie das geht, hängt vom Code und vom Build-System ab. Wenn das Projekt make verwendet, sollte normalerweise make clean ausgeführt werden.

+0

Danke für Hilfe! – user7357954

1

ideal würde Ich mag Lage sein, die Quelle für diesen Tag zum Download ohne das gesamte Repository zu klonen, die aber ich kann nicht zu scheinen, herauszufinden, wie das zu tun, wenn es überhaupt möglich ist.

Sie können wie folgt tun:

git clone https://github.com/jquery/jquery.git --branch 3.1.1 --depth 1 

Um einen bestimmten Tag ohne andere begehen Geschichte zu holen. --branch Parameter kann einen Tag-Namen sowie den Zweig-Namen in modernen Versionen von Git nehmen, wie in this answer erläutert. --depth 1 Ergebnisse in einem flachen Klon, einen Checkout ohne weitere Geschichte zu tun. Flacher Klon wird beispielsweise im Detail beschrieben here. Das Beispiel Repo, das ich verwendet habe, jQuery, ist groß genug, dass Sie den Unterschied beobachten können.

Dies führt zu einem gelösten Zustand, so wie es sein soll.

Verwandte Themen