Frage Laden Sie ein bestimmtes Tag mit Git herunter


Ich versuche herauszufinden, wie ich ein bestimmtes Tag eines Git-Repository herunterladen kann - es ist eine Version hinter der aktuellen Version.

Ich sah, dass es auf der Git-Webseite ein Tag für die vorherige Version gab, mit dem Objektnamen einer langen Hex-Nummer.

Aber der Versionsname ist "Tagged release 1.1.5"Laut der Website.

Ich habe einen Befehl wie diesen versucht (mit geänderten Namen):

git clone http://git.abc.net/git/abc.git my_abc

Und ich habe etwas bekommen - ein Verzeichnis, eine Reihe von Unterverzeichnissen usw.

Wenn es das gesamte Repository ist, wie bekomme ich die Version, die ich suche? Wenn nicht, wie lade ich diese bestimmte Version herunter?


1657
2018-04-27 01:15


Ursprung


Antworten:


$ git clone

gibt Ihnen das gesamte Repository.

Nach dem Klon können Sie die Tags mit angeben $ git tag -l und dann ein bestimmtes Tag auschecken:

$ git checkout tags/<tag_name>

Noch besser, checkout und erstellen Sie eine Verzweigung (andernfalls werden Sie in einer Verzweigung sein, die nach der Revisionsnummer des Tags benannt ist):

$ git checkout tags/<tag_name> -b <branch_name>

2555
2018-04-27 01:53



git clone --branch my_abc http://git.abc.net/git/abc.git

Klonen Sie das Repo und lassen Sie das Tag, an dem Sie interessiert sind.

Dokumentation für 1.8.0 von Git Klon Zustände.

--branch kann auch Tags aufnehmen und den HEAD bei diesem Commit im resultierenden Repository trennen.


267
2018-06-14 09:33



Ich bin kein Git-Experte, aber ich denke, das sollte funktionieren:

git clone http://git.abc.net/git/abc.git
cd abc
git checkout my_abc 

ODER

git clone http://git.abc.net/git/abc.git
cd abc
git checkout -b new_branch my_abc

Die zweite Variante erstellt einen neuen Zweig basierend auf dem Tag, wodurch Sie einen "abgetrennten HEAD" vermeiden können. (git-checkout Handbuch)

Jeder git-Repo enthält den gesamten Revisionsverlauf. Durch das Klonen des Repos erhalten Sie also Zugriff auf das neueste Commit und auf alles, was zuvor geliefert wurde, einschließlich des Tags, nach dem Sie suchen.


94
2018-04-27 01:54



Zum Auschecken nur eines bestimmten Tags für die Bereitstellung verwende ich z. B .:

git clone -b 'v2.0' --single-branch --depth 1 https://github.com/git/git.git

Dies scheint der schnellste Weg zu sein, Code aus einem Remote-Repository auszuprobieren, wenn man nur Interesse am neuesten Code hat und nicht an einem vollständigen Repository. Auf diese Weise ähnelt es dem Befehl "svn co".


85
2017-07-28 02:35



Sie können git archive verwenden, um einen Tar Ball für ein bestimmtes Tag oder eine Comm-ID herunterzuladen:

git archive --format=tar --remote=[hostname]:[path to repo] [tag name] > tagged_version.tar

Sie können auch ein Zip-Archiv eines Tags exportieren.

  1. Tags auflisten:

    git tag
    
    0.0.1
    0.1.0
    
  2. Exportieren eines Tags:

    git archive -o /tmp/my-repo-0.1.0.zip --prefix=my-repo-0.1.0/ 0.1.0
    
  3. Anmerkungen:

    • Sie müssen das Format nicht angeben. Es wird vom Namen der Ausgabedatei erkannt.
    • Wenn Sie das Präfix angeben, wird Ihr Code in ein Verzeichnis exportiert (wenn Sie einen abschließenden Schrägstrich einfügen).

71
2017-12-09 21:46



Benutze die --single-branch Schalter  (verfügbar ab Git 1.7.10). Die Syntax lautet:

git clone -b <tag_name> --single-branch <repo_url> [<dest_dir>] 

Beispielsweise:

git clone -b 'v1.9.5' --single-branch https://github.com/git/git.git git-1.9.5

Der Vorteil: Git erhält Objekte und muss (muss) Deltas nur für den angegebenen Zweig / Tag auflösen - und dabei die gleiche Anzahl an Dateien prüfen! Abhängig vom Quell-Repository sparen Sie dadurch viel Speicherplatz. (Außerdem wird es viel schneller.)


40
2018-06-25 06:28



Holen Sie zuerst alle Tags in dieser spezifischen Fernbedienung

git fetch <remote> 'refs/tags/*:refs/tags/*'

oder einfach eingeben

git fetch <remote>

Überprüfen Sie dann die verfügbaren Tags

git tag -l

Wechseln Sie dann mit dem Befehl unten zu diesem bestimmten Tag

git checkout tags/<tag_name>

Hoffe, das wird dir helfen!


21
2017-09-10 18:57