segunda-feira, 13 de junho de 2016

2.6 Bazoj de Git - Kiel uzi tagging

2.6 Bazoj de Git - Kiel uzi tagging

tagging

Kiel plej VCSs, Git havas la kapablon marki specifajn punktojn en la historio kiel esti gravaj. Ĝenerale, homoj uzas tiu funcionalidad marki liberigo punktoj ( v1.0 , kaj tiel plu). En tiu ĉi parto vi lernos kiel listo la disponeblaj etikedoj, kiel krei novajn etikedoj, kaj kion la malsamaj tipoj de etikedoj estas.

Listing Via Etikedoj

Listigante la disponeblaj etikedoj en Git estas simpla. Simple tajpu git tag :
 $ git tag v0.1 v1.3 
Tiu komando montras la etikedojn en alfabeta ordo; la ordo en kiu aperas ne havas veran gravecon.
Vi povas ankaŭ serĉi etikedoj kun aparta ŝablono. La Git fonto repo, ekzemple, enhavas pli ol 240 etikedoj. Se vi estas nur interesita en rigardante la 1.4.2 serio, vi povas kuri ĉi:
 $ git tag -l 'v1.4.2.*' v1.4.2.1 v1.4.2.2 v1.4.2.3 v1.4.2.4 

kreado Etikedoj

Git uzas du ĉefaj tipoj de etikedoj: malpeza kaj komentita. Malpeza etikedo aspektas kiel branĉo kiu ne ŝanĝas - ĝi estas nur montrilo al specifa fari. Annotated etikedoj tamen estas stokitaj kiel plena objektoj en la Git datumbazo. Ili checksummed; enhavas la tagger nomo, retpoŝto kaj dato; havas tagging mesaĝo; kaj povas esti subskribita kaj konfirmita kun GNU Privacy Guard (GPG). Ĝi ĝenerale rekomendas ke vi kreas annotated etikedoj tiel vi povas havi ĉiu ĉi tiu informo; sed se vi volas portempa etikedo aŭ ial ne volas konservi la aliajn informojn, malpeza etikedoj estas disponeblaj ankaŭ.

annotated Etikedoj

Kreante annotated etikedo en Git estas simpla. La plej facila maniero estas specifi -a kiam vi kuros la tag komando:
 $ git tag -a v1.4 -m 'my version 1.4' $ git tag v0.1 v1.3 v1.4 
La -m specifas tagging mesaĝo, kiu estas stokita kun la etikedo. Se vi ne specifas mesaĝon por acotado etikedo, Git ĵetas via redaktoro tiel vi povas entajpi ĝin en.
Vi povas vidi la etikedo datumoj kune kun la commit kiu etikeditaj uzante la git show komando:
 $ git show v1.4 tag v1.4 Tagger: Scott Chacon <schacon@gee-mail.com> Date: Mon Feb 9 14:45:11 2009 -0800 my version 1.4 commit 15027957951b64cf874c3557a0f3547bd83b3ff6 Merge: 4a447f7... a6b4c97... Author: Scott Chacon <schacon@gee-mail.com> Date: Sun Feb 8 19:02:46 2009 -0800 Merge branch 'experiment' 
Kiu montras la tagger informo, la dato la commit estis etikeditaj kaj komentario mesaĝon antaŭ montri la commit informo.

subskribita Etikedoj

Vi povas ankaŭ subskribi vian etikedoj kun GPG, supozante vi havas privatan ŝlosilon. Ĉiuj vi devas fari estas uzi -s anstataŭ -a :
 $ git tag -s v1.5 -m 'my signed 1.5 tag' You need a passphrase to unlock the secret key for user: "Scott Chacon <schacon@gee-mail.com>" 1024-bit DSA key, ID F721C45A, created 2009-02-09 
Se vi kuras git show sur tiu etikedo, vi povas vidi vian GPG signature alkroĉita al ĝi:
 $ git show v1.5 tag v1.5 Tagger: Scott Chacon <schacon@gee-mail.com> Date: Mon Feb 9 15:22:20 2009 -0800 my signed 1.5 tag -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.8 (Darwin) iEYEABECAAYFAkmQurIACgkQON3DxfchxFr5cACeIMN+ZxLKggJQf0QYiQBwgySN Ki0An2JeAVUCAiJ7Ox6ZEtK+NvZAj82/ =WryJ -----END PGP SIGNATURE----- commit 15027957951b64cf874c3557a0f3547bd83b3ff6 Merge: 4a447f7... a6b4c97... Author: Scott Chacon <schacon@gee-mail.com> Date: Sun Feb 8 19:02:46 2009 -0800 Merge branch 'experiment' 
Iom poste, vi lernos kiel kontroli subskribis etikedoj.

malpeza Etikedoj

Alia maniero etikedi interna estas kun malpeza etikedo. Tio estas esence la commit checksum stokitaj en dosiero - neniu alia informo restos. Krei malpeza etikedo, ne provizi la -a , -s , aŭ -m eblo:
 $ git tag v1.4-lw $ git tag v0.1 v1.3 v1.4 v1.4-lw v1.5 
Tiu tempo, se vi kuros git show sur la etikedo, vi ne vidas la ekstra etikedo informo. La komando nur montras la commit:
 $ git show v1.4-lw commit 15027957951b64cf874c3557a0f3547bd83b3ff6 Merge: 4a447f7... a6b4c97... Author: Scott Chacon <schacon@gee-mail.com> Date: Sun Feb 8 19:02:46 2009 -0800 Merge branch 'experiment' 

kontrolante Etikedoj

Kontroli subskribita etikedo, vi uzas git tag -v [tag-name] . Tiu komando uzas GPG kontroli la subskribon. Vi bezonas la firmante la publika ŝlosilo en via Keyring por ĉi labori konvene:
 $ git tag -v v1.4.2.1 object 883653babd8ee7ea23e6a5c392bb739348b1eb61 type commit tag v1.4.2.1 tagger Junio C Hamano <junkio@cox.net> 1158138501 -0700 GIT 1.4.2.1 Minor fixes since 1.4.2, including git-mv and git-http with alternates. gpg: Signature made Wed Sep 13 02:08:25 2006 PDT using DSA key ID F3119B9A gpg: Good signature from "Junio C Hamano <junkio@cox.net>" gpg: aka "[jpeg image of size 1513]" Primary key fingerprint: 3565 2A26 2040 E066 C9A7 4A7D C0C6 D9A4 F311 9B9A 
Se vi ne havas la firmante la publika ŝlosilo, vi ricevas ion kiel ĉi anstataŭe:
 gpg: Signature made Wed Sep 13 02:08:25 2006 PDT using DSA key ID F3119B9A gpg: Can't check signature: public key not found error: could not verify the tag 'v1.4.2.1' 

tagging Poste

Vi ankaŭ povas marki interna post vi kopiis preter ili. Supozu via commit historio aspektas jene:
 $ git log --pretty=oneline 15027957951b64cf874c3557a0f3547bd83b3ff6 Merge branch 'experiment' a6b4c97498bd301d84096da251c98a07c7723e65 beginning write support 0d52aaab4479697da7686c15f77a3d64d9165190 one more thing 6d52a271eda8725415634dd79daabbc4d9b6008e Merge branch 'experiment' 0b7434d86859cc7b8c3d5e1dddfed66ff742fcbc added a commit function 4682c3261057305bdd616e23b64b0857d832627b added a todo file 166ae0c4d3f420721acbb115cc33848dfcc2121a started write support 9fceb02d0ae598e95dc970b74767f19372d61af8 updated rakefile 964f16d36dfccde844893cac5b347e7b3d44abbc commit the todo 8a5cbc430f1a9c3d00faaeffd07798508422908a updated readme 
Nun, supozu ke vi forgesis etikedi la projekto ĉe v1.2 , kiu estis ĉe la "ĝisdatigita rakefile" commit. Vi povas aldoni ĝin post la fakto. Al etikedo kiu devigas, vi specifas la commit checksum (aŭ parto de ĝi) fine de la komando:
 $ git tag -a v1.2 -m 'version 1.2' 9fceb02 
Vi povas vidi ke vi etikedis la commit:
 $ git tag v0.1 v1.2 v1.3 v1.4 v1.4-lw v1.5 $ git show v1.2 tag v1.2 Tagger: Scott Chacon <schacon@gee-mail.com> Date: Mon Feb 9 15:32:16 2009 -0800 version 1.2 commit 9fceb02d0ae598e95dc970b74767f19372d61af8 Author: Magnus Chacon <mchacon@gee-mail.com> Date: Sun Apr 27 20:43:35 2008 -0700 updated rakefile ... 

sharing Etikedoj

Defaŭlte, la git push komando ne translokigi etikedoj al foraj serviloj. Vi devos eksplicite puŝi etikedoj al dividis servilo post vi kreis ilin. Tiu procezo estas ĝuste kiel dividanta foraj branĉoj - vi povas kuri git push origin [tagname] .
 $ git push origin v1.5 Counting objects: 50, done. Compressing objects: 100% (38/38), done. Writing objects: 100% (44/44), 4.56 KiB, done. Total 44 (delta 18), reused 8 (delta 1) To git@github.com:schacon/simplegit.git * [new tag] v1.5 -> v1.5 
Se vi havas multajn etikedoj ke vi volas puŝi supren tuj, vi povas uzi ankaŭ la --tags eblo la git push komando. Ĉi kopios ĉiujn viajn etikedojn por la fora servilo, kiuj ne jam ekzistas.
 $ git push origin --tags Counting objects: 50, done. Compressing objects: 100% (38/38), done. Writing objects: 100% (44/44), 4.56 KiB, done. Total 44 (delta 18), reused 8 (delta 1) To git@github.com:schacon/simplegit.git * [new tag] v0.1 -> v0.1 * [new tag] v1.2 -> v1.2 * [new tag] v1.4 -> v1.4 * [new tag] v1.4-lw -> v1.4-lw * [new tag] v1.5 -> v1.5 
Nun, kiam iu alia klonas aŭ tiras el via deponejo, ili ricevos vian tutan etikedoj ankaŭ.

Nenhum comentário:

Postar um comentário