Προσπαθώ να καταλάβω πώς μπορώ να κατεβάσω μια συγκεκριμένη ετικέτα ενός αποθετηρίου Git - είναι μια έκδοση πίσω από την τρέχουσα έκδοση.
Είδα ότι υπήρχε μια ετικέτα για την προηγούμενη έκδοση στην ιστοσελίδα git, με όνομα αντικειμένου κάτι μακρύ δεκαεξαδικό αριθμό.
Όμως το όνομα της έκδοσης είναι "Ταγμένη έκδοση 1.1.5
" σύμφωνα με την ιστοσελίδα.
Δοκίμασα μια εντολή όπως αυτή (με τα ονόματα αλλαγμένα):
git clone http://git.abc.net/git/abc.git my_abc
Και όντως πήρα κάτι - έναν κατάλογο, ένα σωρό υποκαταλόγους, κλπ.
Αν είναι ολόκληρο το αποθετήριο, πώς μπορώ να φτάσω στην έκδοση που ψάχνω; Αν όχι, πώς μπορώ να κατεβάσω τη συγκεκριμένη έκδοση;
$ git clone
θα σας δώσει ολόκληρο το αποθετήριο.
Μετά τον κλώνο, μπορείτε να παραθέσετε τις ετικέτες με την εντολή $ git tag -l
και στη συνέχεια να κάνετε checkout μια συγκεκριμένη ετικέτα:
$ git checkout tags/<tag_name>
Ακόμα καλύτερα, κάντε checkout και δημιουργήστε έναν κλάδο (διαφορετικά θα βρίσκεστε σε έναν κλάδο που θα έχει το όνομα του αριθμού αναθεώρησης της ετικέτας):
$ git checkout tags/<tag_name> -b <branch_name>
Δεν είμαι ειδικός στο git, αλλά νομίζω ότι αυτό θα πρέπει να δουλέψει:
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
Η δεύτερη παραλλαγή δημιουργεί έναν νέο κλάδο με βάση την ετικέτα, γεγονός που σας επιτρέπει να αποφύγετε ένα 'detached HEAD'. (git-checkout manual)
Κάθε git repo περιέχει ολόκληρο το ιστορικό αναθεωρήσεων, οπότε η κλωνοποίηση του repo σας δίνει πρόσβαση στο τελευταίο commit, καθώς και σε όλα όσα προηγήθηκαν, συμπεριλαμβανομένης της ετικέτας που ψάχνετε.
Μπορείτε να χρησιμοποιήσετε το git archive για να κατεβάσετε μια μπάλα tar για μια δεδομένη ετικέτα ή αναγνωριστικό δέσμευσης:
git archive --format=tar --remote=[hostname]:[path to repo] [tag name] > tagged_version.tar
Μπορείτε επίσης να εξάγετε ένα αρχείο zip μιας ετικέτας.
Λίστα ετικετών:
git tag
0.0.1
0.1.0
Εξαγωγή μιας ετικέτας:
0.1.0.zip --prefix=my-repo-0.1.0/ 0.1.0
Σημειώσεις: