Įdėkite konkretų žymą su git

Bandau išsiaiškinti, kaip galiu atsisiųsti tam tikrą „Git“ saugyklos žymą - tai viena versija po dabartinės versijos.

Pamačiau, kad ankstesnėje versijoje „Git“ tinklalapyje buvo žyma, kurios objekto pavadinimas buvo kažką ilgo šešioliktainio skaičiaus.

Tačiau versijos pavadinimas „ Tagged release 1.1.5 “ atitinka svetainę.

Bandžiau tokią komandą (su pakeistais pavadinimais):

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

Ir aš turiu kažką - katalogą, pakategorių krūva ir pan.

Jei tai yra visa saugykla, kaip galiu gauti ieškomą versiją? Jei ne, kaip atsisiųsti šią konkrečią versiją?

1521
27 апр. Jack BeNimble nustatė 27 balandžio. 2009-04-27 04:15 '09, 4:15 val. 2009-04-27 04:15
@ 15 atsakymų
 $ git checkout tags/<tag_name> 

Dar geriau, patikrinkite ir sukurkite filialą (kitaip jums bus filialas su pavadinimu po žyma versijos numerio):

2389
27 апр. atsakymas pateiktas balandžio 27 d 2009-04-27 04:53 '09, 4:53 val. 2009-04-27 04:53
 git clone --branch my_abc http://git.abc.net/git/abc.git 

Jis klonuos repo ir paliks jus jus dominančiu žymekliu.

border=0

1.8.5.2 gitų klonų būsenos dokumentacija.

- Filialas taip pat gali priimti žymes ir atskirti HEAD nuo šio įsipareigojimo gautoje saugykloje.

196
14 июня '12 в 12:33 2012-06-14 12:33 Toni atsakymą pateikė birželio 14 d. 12 val. 12:33 2012-06-14 12:33

Aš nesu git ekspertas, bet manau, kad tai turėtų veikti:

 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 

Antrasis variantas sukuria naują filialą pagal žymę, kuri vengia „atjungto HEAD“. (git-checkout vadovas)

Kiekvienoje „Git“ saugykloje yra visa peržiūros istorija, taigi repo klonavimas suteikia jums prieigą prie paskutinio įsipareigojimo, taip pat viską, kas įvyko anksčiau, įskaitant ieškomą žymą.

87
27 апр. atsakymą pateikė grossvogel 27 balandžio. 2009-04-27 04:54 '09, 4:54, 2009-04-27 04:54

Galite naudoti „git“ archyvą, kad įkeltumėte tam tikros žymos paketą arba pataisytumėte ID:

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

Taip pat galite eksportuoti zip archyvo žymą.

  • Žymių sąrašas:

     git tag 0.0.1 0.1.0 
  • Eksporto žyma:

     git archive -o /tmp/my-repo-0.1.0.zip --prefix=my-repo-0.1.0/ 0.1.0 
  • Pastaba:

    • Nereikia nurodyti formato. Jis bus paimtas iš išvesties failo pavadinimo.
    • Nurodant prefiksą, jūsų kodas bus eksportuojamas į katalogą (jei pridedate galinį brūkšnį).
64
10 дек. Chris atsakymas J 10 gruodis 2009-12-10 00:46 '09 ne 0:46 2009-12-10 00:46

Jei norite patikrinti tik konkrečią diegimo žymę, naudoju, pavyzdžiui:

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

Atrodo, kad tai yra greičiausias būdas patikrinti kodą iš nuotolinio saugyklos, jei turite tik naujausio kodo, o ne visą saugyklą. Taigi jis primena svn co komandą.

59
28 июля '15 в 5:35 2015-07-28 05:35 atsakymą pateikė „ Yuan HOng “ liepos 15 d. 15:35 2015-07-28 05:35

Naudokite jungiklį „vienas --single-branch (galima įsigyti kaip „Git 1.7.10“). Sintaksė:

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

Pavyzdžiui:

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

Privalumas: „Git“ gaus objektus ir (reikia) leis delta tik nurodytam filialui / žymei - tikrinant tą patį failų skaičių! Priklausomai nuo šaltinio saugyklos, tai padės sutaupyti daug vietos diske. (Be to, tai bus daug greičiau.)

26
25 июня '15 в 9:28 2015-06-25 09:28 atsakymą pateikė „ eyecatchUp“ birželio 25 d. 15 val. 9:28 2015-06-25 09:28

pirmiausia pasirinkite visus šioje nuotolinio valdymo pulto žymes

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

arba tiesiog įveskite

 git fetch <remote> 

Tada patikrinkite turimas žymes.

 git tag -l 

tada pereikite prie šios žymos naudodami šią komandą

 git checkout tags/<tag_name> 

Tikiuosi, kad tai padės jums!

16
10 сент. atsakymas yra 10 kronų . 2015-09-10 21:57 '15 , 21:57 2015-09-10 21:57

Jei žymės surūšiuotos naudojant „linux sort komandą, naudokite šią komandą:

 git tag | sort -n | tail -1 

Pavyzdžiui. jei „ git tag grąžina:

 v1.0.1 v1.0.2 v1.0.5 v1.0.4 

git tag | sort -n | tail -1 git tag | sort -n | tail -1 bus spausdintos:

 v1.0.5 

git tag | sort -n | tail -2 | head -1 ekranas git tag | sort -n | tail -2 | head -1 rodo:

 v1.0.4 

(nes paprašėte antrojo paskutinio žyma)

Jei norite patvirtinti žymą, pirmiausia klonuokite repo ir įveskite:

 git checkout v1.0.4 

.. arba bet kuri kita jums reikalinga žyma.

13
12 мая '10 в 15:23 2010-05-12 15:23 atsakymą pateikė Peter Johnson gegužės 10 d. 10 val. 15:23 2010-05-12 15:23

Patikrinau git patvirtinimo dokumentus , jis rado vieną įdomų dalyką:

git checkout -b <new_branch_name> <start_point>, kur <start_point> yra įsipareigojimo, kuriam reikia pradėti naują filialą, pavadinimas; Numatytasis HEAD

Taigi mes galime paminėti žymos pavadinimą (kadangi žyma nėra tik įsipareigojimo pavadinimas), pavyzdžiui:

→ git checkout -b 1.0.2_branch 1.0.2
vėliau pakeiskite kai kuriuos failus
→ ištraukite mygtukus

PS: „Git“ sistemoje žyma negali būti atnaujinama tiesiogiai (kadangi žyma yra tik tvirtinimo etiketė), turite patikrinti tas pačias žymes kaip filialas, tada pataisyti jį ir tada sukurti atskirą žymą.

12
26 апр. atsakymas pateikiamas None-da 26 apr. 2010-04-26 17:39 '10, 5:39 PM 2010-04-26 17:39
 git fetch <gitserver> <remotetag>:<localtag> 

===================================

Aš tai padariau. Pirma, aš įsitikinau, kad žinau, kaip parašyta žyma.

 git ls-remote --tags gitserver; : or origin, whatever your remote is called 

Tai suteikė man mano git serverio žymių sąrašą. Originalus plakatas jau žinojo jo žymės pavadinimą, todėl šis žingsnis nėra būtinas visiems. Rezultatas atrodė taip, nors realus sąrašas buvo ilgesnis.

 8acb6864d10caa9baf25cc1e4857371efb01f7cd refs/tags/v5.2.2.2 f4ba9d79e3d760f1990c2117187b5010e92e1ea2 refs/tags/v5.2.3.1 8dd05466201b51fcaf4ca85897347d82fcb29518 refs/tags/Fix_109 9b5087090d9077c10ba22d99d5ce90d8a45c50a3 refs/tags/Fix_110 

Aš pasirinkau žymą, kurią norėjau, ir gavau, ir nieko daugiau.

 git fetch gitserver Fix_110 

Tada pažymėjau jį vietiniame kompiuteryje ir pažymėjau žymenį tuo pačiu pavadinimu.

 git tag Fix_110 FETCH_HEAD 

Nenorėjau klonuoti nuotolinės saugyklos, kaip siūlo kiti žmonės, nes projektas, kurį dirbau, yra didelis ir noriu sukurti švarioje, švarioje aplinkoje. Manau, kad tai yra artimesnis pradiniams klausimams: „Bandau išsiaiškinti, kaip atsisiųsti A KONKREČIĄ TAG“, o ne sprendimą, kuris siūlo klonuoti visą saugyklą. Nesuprantu, kodėl kažkas turėtų turėti „Windows NT“ ir „Windows 8.1“ šaltinio kodo kopiją, jei jie nori žiūrėti į DOS 0,1 šaltinio kodą (pvz.).

Taip pat nenorėjau naudoti CHECKOUT, kaip siūlo kiti. Turėjau filialą, ir aš nenorėjau jos daryti. Mano tikslas buvo gauti programinę įrangą, kurią norėjau, kad galėčiau pasiimti kažką ir pridėti jį prie savo dizaino.

Tikriausiai yra būdas pačiam paimti žymę, o ne tik pažymėtos įsipareigojimo kopiją. Turėjau pažymėti gautą pataisą. EDIT: O taip, aš jį suradau.

 git fetch gitserver Fix_110:Fix_110 

Jei matote dvitaškį, pavadinimas yra nuotolinis: vietinis pavadinimas, ir čia jie yra žymių pavadinimai. Tai daroma nepadarant darbo medžio ir pan. Atrodo, kad medžiaga nukopijuojama iš nuotolinio kompiuterio į vietinį kompiuterį, todėl turite savo kopiją.

 git fetch gitserver --dry-run Fix_110:Fix_110 

pridėjus parinktį „dry-run“, galite pamatyti, ką atliks komanda, jei norite patikrinti, ką norite. Todėl manau, kad taip paprasta

 git fetch gitserver remotetag:localtag 

- realus atsakymas.

=

Atskiras pranešimas apie žymes ... Kai pradedu kažką naujo, po to, kai pradėjau git init, paprastai įdėsiu tuščią saugyklą

 git rebase -i XXXXX 

reikalingas pataisymas, ir kyla klausimas: „Kaip galite pakeisti pakeitimus, kurie apima pirmąją programinės įrangos pakeitimą?“ Todėl, kai pradėsiu dirbti, aš

 git init touch .gitignore [then add it and commit it, and finally] git tag EMPTY 

tai yra. sukurkite įsipareigojimą prieš mano pirmąjį tikrąjį pokytį ir naudokite

 git rebase -i EMPTY 

jei noriu perkrauti visą savo darbą , įskaitant pirmąjį pakeitimą .

11
11 дек. Atsakymą pateikė user3070485 11 gruodis. 2014-12-11 20:28 '14, 20:28 2014-12-11 20:28

Išjungus Peter Johnson atsakymą, sukūriau sau mažą slapyvardį:

6
15 марта '13 в 19:41 2013-03-15 19:41 atsakymą pateikė Billwanjohi kovo 15 d. 13 val. 19:41 2013-03-15 19:41

pabandykite:

 git clone -b <name_of_the_tag> <repository_url> <destination> 
4
21 янв. Kamil Zając atsakymas yra 21 sausis. 2015-01-21 16:25 '15 16:25 2015-01-21 16:25

Žyma patvirtinimas

Jei norite pamatyti žymes pažymėtų failų versijas, galite patikrinti „git“, nors jis savo saugyklą įjungia į „atjungtą HEAD“ būseną, kuri turi tam tikrų šalutinių efektų:

 $ git checkout 2.0.0 Note: checking out '2.0.0'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -b with the checkout command again. Example: git checkout -b <new-branch-name> HEAD is now at 99ada87... Merge pull request #89 from schacon/appendix-final $ git checkout 2.0-beta-0.1 Previous HEAD position was 99ada87... Merge pull request #89 from schacon/appendix-final HEAD is now at df3f601... add atlas.json and cover image 

„Išjungtoje HEAD“ būsenoje, jei atliksite pakeitimus ir sukuriate įsipareigojimą, žyma išliks nepakitusi, tačiau jūsų naujasis skląstis nepriklauso jokiam filialui ir nebus prieinamas, išskyrus tikslią įvykio maišą. Taigi, jei reikia atlikti pakeitimus, tarkime, kad pataisote senesnės versijos klaidą, pvz., Paprastai norite sukurti filialą:

 $ git checkout -b version2 v2.0.0 Switched to a new branch 'version2' 

Jei tai padarysite ir įsipareigosite, jūsų versijos2 filialas šiek tiek skirsis nuo jūsų v2.0.0 žymos, nes jis pradės veikti su naujais pakeitimais, todėl būkite atsargūs.

2
30 сент. atsakymas duodamas artamonovdev 30 sep . 2017-09-30 15:19 '17 at 15:19 2017-09-30 15:19

Tai darau per „github“ API:

 curl -H "Authorization: token %(access_token)s" -sL -o /tmp/repo.tar.gz "http://api.github.com/repos/%(organisation)s/%(repo)s/tarball/%(tag)s" ;\ tar xfz /tmp/repo.tar.gz -C /tmp/repo --strip-components=1 ; \ 
2
28 марта '13 в 16:26 2013-03-28 16:26 atsakymas pateikiamas J0hnG4lt kovo 28 d. 13 val. 16:26 2013-03-28 16:26

Klonas „-b“ taip pat padeda: „git klonas“ https://git01.codeplex.com/aspnetwebstack.git -b v2.0

Toliau pateiktame leidinyje naudojama pirmiau pateikta galimybė atsisiųsti asp.net mvc: http://vijayt.com/Post/Setting-up-aspnet-mvc-for-debugging-in-your-system

1
01 нояб. atsakymas duotas vijaistui 01 Lap. 2013-11-01 07:40 '13, 7:40 2013-11-01 07:40

Kiti klausimai apie žymes arba Ask a Question