Kaip pervardyti „git“ žymą?

Šiandien projektui peržiūrėjau žurnalus ir supratau, kad jau seniai buvau žymėjęs žymos pavadinimą. Ar yra būdas pakeisti žymę? „Google“ nerado nieko naudingo.

Suprantu, kad galiu patikrinti pažymėtą versiją ir sukurti naują žymą, netgi bandžiau. Bet tai panaši į žymėjimo objekto kūrimą, kuris nėra visiškai teisingas. Vienam,

 git tag -l 

nurodo, kad jis neveikia visų kitų žymių atžvilgiu. Nežinau, kaip tai svarbu, bet manau, kad naujasis žymos objektas nėra būtent tas, ko noriu. Galiu gyventi su tuo, nes tikrai nerūpi, kad žymės pavadinimas atitiktų dokumentaciją, bet norėčiau tai padaryti „teisingai“, darant prielaidą, kad yra teisingas būdas tai padaryti.

928
22 июня '09 в 21:09 2009-06-22 21:09 Brandon Fosdick paprašė birželio 22 d. 09:09 21:09 2009-06-22 21:09
@ 8 atsakymai

Štai kaip pervadino old žymą į new :

 git tag new old git tag -d old git push origin :refs/tags/old git push --tags 

Stūmimo komandos dvitaškis pašalina žymą iš nuotolinio saugyklos. Jei ne, git sukurs seną žymą kompiuteryje, kai ištrauksite.

Galiausiai įsitikinkite, kad kiti vartotojai ištrino ištrintą žymą. Pasakykite jiems (personalui) šią komandą:

 git pull --prune --tags 
1574
19 апр. Casey Watson atsakymas balandžio 19 d 2011-04-19 19:51 '11, 19:51, 2011-04-19 19:51

Pradinis klausimas buvo toks, kaip pervardyti žymę, kuri yra paprasta: pirmiausia sukurkite NAUJĄ kaip senąjį pseudonimą: „ git tag NEW OLD , tada ištrinkite „OLD“: „ git tag -d OLDкод>.

Citata apie "w20> kelią" ir (in) sveikatą yra ne bazinė, nes kalbama apie žymos pavadinimo laikymąsi, bet daro nuorodą į kitą repo būseną.

266
09 дек. Atsakymas, kurį pateikė Greg McGary Dec 09 2009-12-09 16:34 '09 ne 16:34 2009-12-09 16:34

Be kitų atsakymų:

Pirmiausia turite sukurti slapyvardį. senas žymas:

  git tag new_tag_name old_tag_name Код> 

Redaguoti: Šis atsakymas rodo, kad turite pasirūpinti, kad būtų nurodyta teisinga (originali) fiksacija:

  git tag new old ^ {} Код> 

Tada jums reikia ištrinti seną vietą:

  git tag -d old_tag_name Код> 

Tada ištrinkite žymą tolimose vietose:

  # Проверьте удаленные источники: git remote -v # Аргумент (3-й) - это ваше удаленное местоположение, # тот, который вы видите с помощью `git remote`. В этом примере: `origin` git push origin: refs/tags/old_tag_name Код> 

Galiausiai turite pridėti naują žymą į tolimą vietą. Kol tai padarysite, naujoji žyma nebus pridėta :

  git push origin --tags Код> 

Iterate tai kiekvienai nuotolinei vietai.

Atminkite, kad pasekmės yra tai, kad keičiant git žymę į vartotojų paketą!

90
27 апр. kaiser atsakė 27 balandžio. 2013-04-27 14:42 '13, 14:42 pm 2013-04-27 14:42

Jei jis bus paskelbtas, negalite jo pašalinti (nekeliant pavojaus, kad jis bus sudrėkintas ir plunksninis). „git metodas“:

Sveikas dalykas. Pripažinkite, kad esate sugadintas ir naudojate kitą pavadinimą. Kiti jau matė tą patį žymos pavadinimą, ir jei jūs išsaugosite tą patį pavadinimą, jums gali būti situacija, kai du žmonės turi „X versiją“, tačiau iš tikrųjų jie turi skirtingą „X“. Taigi vadink jį „X.1“ ir atlikite jį su juo.

Arba,

Crazy dalykas. Ar tikrai norite pavadinti naują „X“ versiją, net jei kiti jau matė senąją. Taigi dar kartą naudokite git -tag -f, tarsi jūs dar nepaskelbėte senojo.

Tai taip įprasta, nes:

„Git“ nekeičia (ir neturėtų) keisti žymių naudotojams. Taigi, jei kas nors jau gavo seną žymą, tuomet turėtumėte ne tik perrašyti senąjį, kad padarytumėte savo medį.

Jei kas nors gavo iš jūsų leidimo žymą, jūs negalite paprasčiausiai pakeisti jų žymos atnaujindami savo. Tai didelė saugumo problema, nes žmonės turi sugebėti pasitikėti savo žymių pavadinimais. Jei tikrai norite padaryti beprotišką dalyką, jums reikia tai padaryti ir pasakyti žmonėms, kad jūs esate sugadintas.

Visi „ man“ puslapiai

22
22 июня '09 в 21:10 2009-06-22 21:10 Robert Munteanu atsakymas birželio 22 d. 09:10 val. 2009-06-22 21:10

Šiame wiki puslapyje yra šis įdomus vieno eilutės šriftas, kuris mums primena, kad galime spustelėti kelias nuorodas :

 git push origin <refs/tags/old-tag>:<refs/tags/new-tag> :<refs/tags/old-tag>  git tag -d <old-tag> 

ir paprašykite, kad kiti kloneriai atliktų git pull --prune --tags

Taigi idėja yra spustelėti:

  • <new-tag> visiems įsipareigojimams, nurodytiems <old-tag >: <refs/tags/old-tag>:<refs/tags/new-tag> ,
  • pašalinti <old-tag> :: :<refs/tags/old-tag>

Žr. Pavyzdį „ Žymių pavadinimo tvarkos keitimas git? Saugykloje .

22
16 июня '14 в 17:20 2014-06-16 17:20 atsakymą pateikė „ VonC “ birželio 16 d. 14 val

Kaip papildymą kitiems atsakymams, pridėjau slapyvardį, kad galėčiau tai padaryti vienu žingsniu, su labiau susipažinusi komanda * nix move. 1 argumentas yra senojo žyma, 2 argumentas yra naujas žymens pavadinimas.

 [alias] renameTag = "!sh -c 'set -e;git tag $2 $1; git tag -d $1;git push origin :refs/tags/$1;git push --tags' -" 

Naudoti:

 git renametag old new 
18
17 нояб. Atsakymą pateikė Jaredas Knippas, lapkričio 17 d. 2015-11-17 18:00 „15, 18 val. 2015-11-17 18:00

Dėl nuotykių tai galima padaryti vienoje komandoje:

 mv .git/refs/tags/OLD .git/refs/tags/NEW 
6
13 июля '12 в 12:24 2012-07-13 12:24 atsakymą pateikė Wolfolfas liepos 12 d. 12:24 2012-07-07 12:24

Lengva dalis yra vietinių žymenų pervadinimas. Sunkesnė dalis yra nuotolinės. Šios gudrybės idėja yra kopijuoti seną žymą / filialą nauju ir ištrinti senąjį be patikrinimo.

Nuotolinio žymėjimo pervadinimas / Nuotolinis filialas → žymos konvertavimas: (Pastaba :refs/tags/ )

 git push <remote_name> <old_branch_or_tag>:refs/tags/<new_tag> :<old_branch_or_tag> 

Nuotolinio filialo pervadinimas / Nuotolinė žyma → šakos transformacija: (Pastaba :refs/heads/ )

 git push <remote_name> <old_branch_or_tag>:refs/heads/<new_branch> :<old_branch_or_tag> 

Išvesties pervadinimas ištrintas žyma:

 D:\git.repo>git push gitlab App%2012.1%20v12.1.0.23:refs/tags/App_12.1_v12.1.0.23 :App%2012.1%20v12.1.0.23 Total 0 (delta 0), reused 0 (delta 0) To https://gitlab.server/project/repository.git - [deleted] App%2012.1%20v12.1.0.23 * [new tag] App%2012.1%20v12.1.0.23 -> App_12.1_v12.1.0.23 
1
17 февр. atsakymas pateikiamas zionyx 17 vas. 2017-02-17 16:41 '17, 16:41 pm 2017-02-17 16:41

Kiti klausimai apie žymes arba klausimo pateikimas