1.3 Ekkomenci - Git-Bazoj
Do, kio estas Git en malmultaj vortoj? Tio estas grava sekcio por sorbi, ĉar se vi komprenas kion Git estas la bazfaktoj de kiel ĝi funkcias, tiam uzanta Git efike verŝajne estos multe pli facila por vi. Kiel vi lernas Git, provi malbari vian menson de la aferoj vi eksciu pri aliaj VCSs, kiel Subversion kaj Perforce; faranta helpos vin eviti subtila konfuzo uzinte la ilo. Git tendencas kaj pensas informo multe malsama ol tiuj aliaj sistemoj, kvankam la uzanto-interfaco estas sufiĉe similaj; kompreni tiujn diferencojn helpos malhelpi vin de fariĝanta konfuzita dum uzante ĝin.
Instantáneas, Ne Diferencoj
La ĉefa diferenco inter Git kaj ajna alia VCS (Subversion kaj amikoj inkluzivita) estas la maniero Git pensas liajn datumojn. Koncepte, la plej multaj aliaj sistemoj stokas informon kiel listo de dosiero bazita ŝanĝoj. Tiuj sistemoj (CVS, Subversion, Perforce, Bazaro, kaj tiel plu) pensas de la informo kiun ili tenas kiel aro de dosieroj kaj la ŝanĝoj faritaj al ĉiu dosiero en la tempo, kiel ilustrita en Figuro 1-4.
Figuro 1-4. Aliaj sistemoj emas stoki datumojn kiel ŝanĝoj al bazo versio de ĉiu dosiero. Git ne pensi aŭ stoki liajn datumojn tiamaniere. Anstataŭe, Git pensas liaj datumoj pli kiel aro de instantáneas de mini dosiersistemo. Ĉiufoje vi faras, aŭ savi la staton de via projekto en Git, ĝi esence faras foton de kio ĉiuj viaj dosieroj aspekti tiumomente kaj stokas referenco al tiu instantánea. Esti efika, se dosierojn ne ŝanĝis, Git ne stokas la dosieron denove-nur ligilon al la antaŭa identa dosier ĝi jam stokitaj. Git pensas liaj datumoj pli kiel Figuro 1-5.

Figuro 1-5. Git tendencas datumoj kiel instantáneas de la projekto dum tempo. Tio estas grava distingo inter Git kaj preskaŭ ĉiuj aliaj VCSs. Ĝi faras Git rekonsideri preskaŭ ĉiu aspekto de versitena ke plejparto de aliaj sistemoj kopiita el la antaŭa generacio. Tio igas Git pli kiel mini dosiersistemo kun iuj nekredeble potencaj iloj konstruita sur supro, prefere ol simple VCS. Ni esploros iuj de la avantaĝoj vi gajnos per pensado de via datumo tiel kiam ni kovras Git branĉantaj en Ĉapitro 3.
Preskaŭ Ĉiu Operacio Ĉu Loka
Plej operaciojn en Git nur bezonas lokajn dosierojn kaj rimedoj por funkcii - ĝenerale neniuj informoj bezonas de alia komputilo en via reto. Se vi uzis al CVCS kie plej operacioj havas tiun reton latencia superkape, tiu aspekto de Git faros vin pensas ke la dioj de rapido benas Git kun unworldly potencoj. Ĉar vi havas la tutan historion de la projekto Dekstre sur via loka disko, plej operacioj ŝajnas preskaŭ instantánea.Ekzemple, tralegi la historion de la projekto, Git ne bezonas iri al la servilo por preni la historion kaj vidigi ĝin por vi-ĝi simple legas gxin rekte el via loka datumbazo. Tiu signifas ke vi vidu la projekto historio preskaŭ senprokraste. Se vi volas vidi la ŝanĝojn enkondukitaj inter la nuna versio de la dosiero kaj la dosiero monato, Git povas rigardi la dosieron monato kaj fari lokan diferencon kalkulo, anstataŭ devi aŭ petu fora servilo fari ĝin aŭ tiri pli malnovan version de la paĝo el fora servilo fari ĝin loke.
Ĉi tio ankaŭ signifas ke ekzistas tre malmulta povas fari se vi estas senkonekta aŭ malŝalti VPN. Se vi akiras sur aviadilo aŭ trajno kaj volas fari iom laboron, vi povas fari feliĉe ĝis vi atingos retan konekton al alŝuto. Se vi iros hejmen kaj ne povos atingi vian VPN kliento funkcias taŭge, vi povas ankoraŭ labori. En multaj aliaj sistemoj, farante tiel estas aŭ neebla aŭ dolora. En Perforce, ekzemple, vi povas fari tre kiam vi ne estas konektita al la servilo; kaj Subversion kaj CVS, vi povas redakti dosierojn, sed vi ne povas fari ŝanĝojn al via datumbazo (ĉar via datumbazo estas offline). Tio povas ŝajni kiel granda interkonsento, sed vi povas esti surprizita kiom granda diferenco povas fari.
Git Has Integreco
Ĉio en Git estas check-sumita antaŭ ĝi estas stokita kaj tiam estas referita sub tiu checksum. Tio signifas ke ne eblas ŝanĝi la enhavon de ajna dosiero aŭ dosierujo sen Git sciante pri ĝi. Tiu funcionalidad estas konstruita en Git ĉe la plej malaltaj niveloj kaj estas integrita al lia filozofio. Vi ne povas perdi informon en trafiko aŭ akiri dosieron korupteco sen Git povi detekti ĝin.La mekanismo kiu Git uzas por tiu checksumming nomiĝas SHA-1 hash. Jen 40-signoĉeno formita de deksesumaj karakteroj (0-9 kaj-f) kaj kalkulita surbaze de la enhavo de dosiero aŭ dosierujo strukturo en Git. A SHA-1 hash aspektas io tiamaniere:
24b9da6552252987aa493b52f8696cd6d3b00373
Vi vidos tiujn haketvaloro ĉie en Git ĉar ĝi uzas ilin tiel. Fakte, Git stokas ĉiu ne de dosiernomo sed en la Git datumbazo direccionable per la hash valoro de ĝia enhavo. Git Ĝenerale Nur Aldonas Datumoj
Kiam vi faros agojn en Git, preskaŭ ĉiuj el ili nur aldoni datumojn al la Git datumbazo. Ĝi estas tre malfacila akiri la sistemon por fari ion kiu ne undoable aŭ fari ŝin viŝi datumojn iamaniere. Kiel en ajna VCS, vi povas perdi aŭ fuŝas ŝanĝojn vi ne faris ankoraŭ; sed post fari ekrankopion en Git, estas tre malfacile perdi, speciale se vi regule puŝi vian datumbazon al alia enciklopedio.Tio igas uzi Git ĝojo ĉar ni scias ke ni povas sperti sen la danĝero de severe tedas aĵojn. Por pli detala rigardi kiom Git stokas liajn datumojn kaj kiel vi povas rekuperi datumojn kiu similas perdita, vidu "Sub la Kovriloj" en Ĉapitro 9.
La Tri ŝtatoj
Nun atentu. Tiu estas la ĉefa afero memori pri Git se vi volas ke la resto de via lernado procezo iri glate. Git havas tri ĉefajn statojn ke viaj dosieroj povas loĝi en: farita, modifita, kaj enscenigis. Farita signifas ke la datumoj estas sekure stokitaj en via loka datumbazo. Modifita per kiuj vi ŝanĝis la dosieron sed ne faris ĝin al via datumbazo ankoraŭ. Enscenigita rimedoj kiujn vi markis modifitan bildon en lia aktuala versio, por iri en vian proksima commit instantánea.Tio kondukas nin al la tri ĉefaj sekcioj de Git projekto: la Git dosierujo, la labordosierujon kaj la surscenigo areo.

Figuro 1-6. Laborante dosierujo, surscenigo areo, kaj git dosierujo. La Git dosierujo estas kie Git stokas la metadatos kaj objekto datumbazo por via projekto. Tiu estas la plej grava parto de Git kaj estas kio estas kopiita kiam kloni deponejo de alia komputilo.
La laboranta dosierujo estas ununura kaso de unu versio de la projekto. Tiuj dosieroj estas tirita el la kunpremita datumbazo en la Git dosierujo kaj metitaj en disko por vi uzi aŭ modifi.
La surscenigo areo estas simpla dosiero, ĝenerale enhavita en via Git dosierujo, kiu stokas informojn pri kio iros en vian proksima commit. Ĝi estas iam referis al kiel la indekso, sed ĝi igas normon por rilati al ĝi kiel la surscenigo areo.
La baza Git laborfluo iras io kiel tio:
- Vi modifi dosierojn en via laboranta dosierujo.
- Vi enscenigi la dosierojn, aldoni fotojn de ili por via surscenigo areo.
- Vi oni faras, kiu prenas la dosierojn kiel ili estas en la surscenigo areo kaj tendencas ke instantánea konstante al via Git dosierujo.
Nenhum comentário:
Postar um comentário