Ik'ben aan het uitzoeken hoe ik een bepaalde tag van een Git repository kan downloaden - het'is een versie achter de huidige versie.
Ik zag dat er een tag was voor de vorige versie op de git webpagina, met objectnaam van iets lang hex-nummer.
Maar de versienaam is "Tagged release 1.1.5
" volgens de site.
Ik probeerde een commando als dit (met veranderde namen):
git clone http://git.abc.net/git/abc.git my_abc
En ik kreeg iets - een directory, een aantal subdirectories, enz.
Als het de hele repository is, hoe kom ik dan bij de versie die ik zoek? Zo niet, hoe download ik dan die specifieke versie?
$ git clone
zal je de hele repository geven.
Na de kloon, kun je de tags bekijken met $ git tag -l
en dan een checkout doen voor een specifieke tag:
$ git checkout tags/<tag_name>
Nog beter, checkout en maak een branch aan (anders zul je op een branch zitten die genoemd is naar het revisienummer van de tag):
$ git checkout tags/<tag_name> -b <branch_name>
Ik'ben geen git expert, maar ik denk dat dit zou moeten werken:
git clone http://git.abc.net/git/abc.git
cd abc
git checkout my_abc
OR
git clone http://git.abc.net/git/abc.git
cd abc
git checkout -b new_branch my_abc
De tweede variatie zet een nieuwe branch op, gebaseerd op de tag, waarmee je een 'detached HEAD' kunt vermijden. (git-checkout handleiding)
Elke git repo bevat de hele revisie geschiedenis, dus het clonen van de repo geeft je toegang tot de laatste commit, plus alles wat daarvoor kwam, inclusief de tag waar je'naar op zoek bent.
Je kunt git archive gebruiken om een tar ball te downloaden voor een gegeven tag of commit id:
git archive --format=tar --remote=[hostname]:[path to repo] [tag name] > tagged_version.tar
Je kunt ook een zip archief van een tag exporteren.
Lijst tags:
git tag
0.0.1
0.1.0
Exporteer een tag:
git archive -o /tmp/my-repo-0.1.0.zip --prefix=my-repo-0.1.0/ 0.1.0
Opmerkingen: