Kaip žymė skiriasi nuo filialo git? Ką turėčiau naudoti čia?

Man sunku suprasti, kaip naudoti žymes prieš filialus .

Aš tiesiog išversiu dabartinę mūsų kodo versiją iš „ į , o dabar dirbsiu su šio kodo pogrupiu tam tikrai funkcijai. Kai kurie kiti kūrėjai taip pat dirbs šiuo klausimu, bet ne visi mūsų grupės kūrėjai rūpinsis šia funkcija. Ar turėčiau sukurti filialą ar žymą? Kokiomis situacijomis turėčiau naudoti vieną prieš kitą?

519
22 сент. „Bialecki“ yra nustatytas rugsėjo 22 d. 2009-09-22 00:55 '09 ne 0:55 2009-09-22 00:55
@ 12 atsakymų

Žyma yra konkrečios šakos versija tuo metu. Filialas yra atskira vystymosi gija, kuri gali būti vykdoma kartu su kitomis kūrėjo pastangomis tuo pačiu kodo pagrindu. Filialo pakeitimai vėliau gali būti sujungti į kitą filialą, kad juos sujungti.

Paprastai įdėjote konkrečią versiją, kad ją būtų galima atkurti, pavyzdžiui, tai yra versija, kurią mes išsiuntėme „XYZ Corp“. Filialas - tai strategija, pagal kurią teikiamos konkrečios kodo versijos atnaujinimai ir toliau tobulinama. Sukursite pateiktos versijos filialą, tęsite plėtotę pagrindinėje linijoje, bet pataisysite filialo klaidas, kurios atitinka pateiktą versiją. Galų gale, jūs sujungiate šiuos klaidų taisymus atgal į pagrindinę liniją. Dažnai kartu naudosite šakės ir žymes. Turėsite įvairių žymių, kurios gali būti taikomos tiek pagrindinei linijai, tiek jos filialams, nurodant konkrečias versijas (pvz., Pristatytas klientams) kiekviename filiale, kurį galbūt norėsite sukurti - pristatymui, klaidų diagnostikai ir kt.

Tai iš tikrųjų sunkiau nei tai - ar taip sunku, kaip norite, bet šie pavyzdžiai turėtų suteikti jums idėjų apie skirtumus.

442
22 сент. Atsakymas pateikiamas tvanfosson rugsėjo 22 d 2009-09-22 01:03 '09, 1:03 2009-09-22 01:03

Teoriniu požiūriu :

  • žymos yra šios versijos simboliniai pavadinimai. Jie visada nurodo tą patį objektą (paprastai: su ta pačia peržiūra); jie nekeičia.
  • filialai yra simboliniai raidos pavadinimai. Nauji įsipareigojimai sukurti filialo viršuje. Filialo rodyklė natūraliai juda, nurodydama naujus ir naujus įsipareigojimus.

Techniniu požiūriu:

border=0
  • žymos yra refs/tags/ namespace ir gali nukreipti žymėti objektus (anotuotus ir pasirenkamus GPG parašo žymenis) arba tiesiogiai į įsipareigojimo objektą (mažiau naudojamą šviesos žymę vietiniams pavadinimams) arba labai retais atvejais net medžio objektui ar objektui (pvz., GPG parašas).
  • šakos yra refs/heads/ namespace ir gali rodyti tik fiksavimo objektus. HEAD rodyklė turi remtis filialu (simboline nuoroda) arba tiesiai į įsipareigojimą (atskirą galvą arba nepažymėtą filialą).
  • Nuotolinio stebėjimo filialai yra refs/remotes/<remote>/ vardų erdvėje ir laikosi įprastų filialų <remote> saugykloje <remote> .

Taip pat žr.

filialas

„Filialas“ yra aktyvi plėtros linija. Paskutinis filialo pataisymas vadinamas šio filialo pabaiga. Filialo antgalis reiškia šakos galvutę, kuri eina į priekį, kai šakoje atsiranda papildomas filialas. Viena GIT saugykla gali stebėti savavališką šakų skaičių, tačiau jūsų darbo medis yra susietas tik su vienu iš jų („dabartinis“ arba „patikrinimas“ filialas), o HEAD nurodo šią šaką.

žyma

Ref nurodo žymę arba objektą. Skirtingai nuo galvos, žyma nekeičiama tvirtinant. Žymos (ne žymės) yra saugomos $GIT_DIR/refs/tags/ . [...]. Žyma dažniausiai naudojama nurodant konkretų genčių fiksavimo grandinės tašką.

žymos objektas

Objektas, kuriame yra nuoroda į kitą objektą, kuriame gali būti pranešimas, kaip ir fiksavimo objektas. Jame taip pat gali būti parašas (PGP), tokiu atveju jis vadinamas „pasirašytu žymos objektu“.

446
22 сент. Atsakymą pateikė Jakub Narębski rugsėjo 22 d 2009-09-22 03:12 '09, 3:12 2009-09-22 03:12

Jei manote apie savo saugyklą kaip knygą, kurioje kalbama apie jūsų projekto pažangą ...

Filialai

Galite rasti filialą kaip vieną iš šių lipnių žymių :

2019

121
16 сент. atsakymas duotas jubobs rugsėjo 16 d 2014-09-16 20:05 '14, 20:05, 2014-09-16 20:05

Ką reikia suprasti iš CVS, kad nesukuriant katalogų kuriate filialą.
Daugiau lipnių žymų (kurios gali būti taikomos tik vienam failui) arba šakos žymę.
Atskyriklis ir žymės yra du skirtingi objektai „Git“, ir jie visada taikomi visam repo.

Jūs nebegalėsite (su SVN šiuo metu) aiškiai susisteminti savo saugyklą su:

 branches myFirstBranch myProject mySubDirs mySecondBranch ... tags myFirstTag myProject mySubDirs mySecondTag ... 

Ši struktūra atsiranda dėl to, kad CVS yra peržiūros sistema, o ne versijų sistema (žr. Versijos valdymą ir versijų valdymą? ).
Tai reiškia, kad filialai imituojami naudojant CVS žymes, SVN katalogų kopijas.

Jūsų klausime kyla jausmai, jei esate įpratę tikrinti žymą ir pradėti dirbti su juo.
Kuris neturėtumėte;)
Žyma turi atspindėti nekintamą turinį, kuris naudojamas tik prieigai prie jos, kad gautumėte tą patį turinį kiekvieną kartą.

„Git“ versijos istorija yra eilė įsipareigojimų, sudarančių grafiką.
Filialas yra vienas šio grafiko kelias.

 x--x--x--x--x # one branch \ --y----y # another branch 1.1 ^ | # a tag pointing to a commit 
  • Jei pažymėsite žymą, turėsite sukurti filialą, kad galėtumėte pradėti dirbti su juo.
  • Jei pažymėsite filialą, tuoj pat pamatysite paskutinį savo filialo įsipareigojimą („HEAD“).

Žr. Jakub Narębski atsakymą dėl visų techninių klausimų, tačiau atvirai kalbant, šiuo metu jums nereikia (dar) visų detalių;)

Svarbiausia: žyma, kuri yra paprastas rodiklis, kuriuo galima įsipareigoti, niekada negali pakeisti jo turinio. Jums reikia filialo.


Jūsų atveju kiekvienas kūrėjas dirba su tam tikra funkcija:

  • saugykloje turi sukurti savo temą
  • stebėti savo kolegų saugyklų filialus (tą, kuris dirba su ta pačia funkcija)
  • paspaudę / paspaudę pasidalinsite savo darbu su bendraamžiais.

Užuot tiesiogiai stebėję savo kolegų filialus, galite stebėti tik vienos „oficialios“ centrinės saugyklos filialą, prie kurio visi stengiasi integruoti ir dalytis viskuo šiam tikslui.

39
22 сент. Atsakymą pateikė VonC 22 sep. 2009-09-22 10:10 '09 10:10 am. 2009-09-22 10:10

Filialai yra pagaminti iš medžio ir auga iš medžio kamieno. Žymos yra pagamintos iš popieriaus (medienos dariniai) ir pakabinamos kaip Kalėdiniai papuošalai iš įvairių vietų medyje.

Jūsų projektas yra medis, ir jūsų funkcija, kuri bus įtraukta į projektą, šakoje augs. Atsakymas yra filialas.

33
16 окт. Atsakymas Jason 16 sp 2015-10-16 23:50 '15, 23:50, 2015-10-16 23:50

Atrodo, geriausias būdas paaiškinti, kad žymės veikia kaip tik skaitomos temos. Filialą galite naudoti kaip žymą, tačiau netyčia galite ją atnaujinti naujomis priemonėmis. Žymos garantuoja, kad jos nurodys tą patį pranešimą, jei jos yra.

15
29 авг. atsakymą pateikė Vassili Gorshkov . 2012-08-29 02:32 '12 at 2:32 2012-08-29 02:32

„Git Parable“ paaiškina, kaip sukurta tipiška DVCS ir kodėl jų kūrėjai padarė tai, ką padarė. Be to, galite pažvelgti į „ Git for Computer Scientist“ ; jis paaiškina, ką daro kiekvienas „Git“ objektas, įskaitant filialus ir žymes.

10
22 сент. Atsakymas suteiktas Bombe 22 sep. 2009-09-22 09:03 '09, 9:03 am. 2009-09-22 09:03

Žymos gali būti pasirašytos arba nepasirašytos ; filialai niekada nepasirašo.

Pasirašytos žymos niekada negali būti perkeltos, nes jos yra kriptografiškai susietos (su parašu) su konkrečiu fiksatoriumi. Nepasirašytos žymos nėra susietos ir jas galima perkelti (bet judančios žymos nėra įprastas atvejis).

Filialai gali ne tik pereiti prie kito nustatymo, bet ir tai daryti. Vietos plėtros projektui turite naudoti filialą. Nėra prasmės dirbti su „Git“ saugykla „ant žyma“.

10
22 сент. Greg Hewgill atsakymas rugsėjo 22 d 2009-09-22 01:03 '09, 1:03 2009-09-22 01:03

Žyma naudojama norint nurodyti versiją, konkrečiau, tai reiškia filialo tašką. Filialas paprastai naudojamas projektui pridėti funkcijų.

6
08 мая '16 в 23:54 2016-05-08 23:54 atsakymas pateiktas numeriu45 08 gegužės 16 d. 23:54 2016-05-08 23:54

tiesiog:

Tikimasi, kad žymos visuomet nurodys tą pačią projekto versiją, o tikimasi, kad skyriuose bus padaryta pažanga vystymosi metu.

„Git“ naudotojo vadovas

3
12 нояб. Atsakymą pateikė Bar Horing, lapkričio 12 d. 2017-11-12 15:25 '17, 15:25 pm 2017-11-12 15:25

Stuburas : bus pagrindinė vystymosi dalis, pradedant nuo projekto pradžios iki dabarties.

Filialas : bus kodo kopija, gauta iš tam tikro jungties linijos taško, kuris naudojamas atlikti svarbius kodo pakeitimus, išlaikant kodo vientisumą bagažinėje. Jei pagrindiniai pokyčiai veikia pagal planą, jie paprastai susilieja į barelį.

Žyma : bus taškas ryšio linijoje ar šakoje, kurią norite išsaugoti. Dvi pagrindinės išsaugojimo priežastys: tai yra pagrindinis programinės įrangos išleidimas, ar tai yra alfa, beta, RC ar RTM, ar tai yra pats stabiliausias programinės įrangos taškas prieš pagrindinius pakeitimus naudojant kamieną.

1
08 марта '17 в 18:23 2017-03-08 18:23 Atsakymą pateikė Errabi Ayoub , kovo 8 d. 17, 18:23 2017-03-08 18:23

Man patinka galvoti apie filialus, kur jūs einate , žymas, kur buvote .

Žyma yra kaip tam tikros svarbios praeities taško, pvz., Versijos, žymė.

Nors filialas yra tam tikras kelias, projektas krinta, todėl šakos žymeklis juda kartu su jumis. Kai baigsite, jūs sujungiate / ištrinate filialą (t. Y. Žymeklį). Žinoma, šiuo metu galite pažymėti šį įvykį.

0
02 дек. Atsakymas duotas Gazzer 02 Dec. 2018-12-02 17:41 '18 at 17:41 pm 2018-12-02 17:41

Kiti klausimai apie „ tags“ arba „ Užduoti klausimą“