Sveiki visi 🙂 Prieš tęsdamas užsakymų sąrašo tekstus, noriu pasidžiaugti „git 2.16“ išleidimu, dėkodamas kiekvienam pataisą atsiuntusiam ir kiekvienam iš vartotojų. Iš viso tarp atnaujinimų ir taisymų turėjome kaip 4000 eilučių , kuris nelabai kalba apie mano pirmąją versiją, bet kalba apie jūsų gerumą 🙂 Ačiū! Dabar aš jums pasakysiu mažą paslaptį, iki šiol nebuvo laiko, kai aš nesėdėčiau rašyti straipsnio ir daug apie tai galvojau, paprastai aš tiesiog rašau iš eilės, o tada geras driežas priima malonumą ištaisyti mano spausdinimo klaidas 🙂 tad ačiū ir jam.
Tai nėra geriausia, kai kalbame apie straipsnių rašymą, manoma, kad tai turėtų turėti tikslą ir sukurti struktūrą, pažymėti mažus dalykus, apžvalgas ir pan., Ir tt ... Dabar tai taikoma ne tik tinklaraščiams apskritai, bet ir labai svarbu programinė įranga, kuri apsimeta gera 🙂 Šiai užduočiai atlikti ir po kai kurių problemų su versijų valdymo programine įranga, kuri prieš keletą metų buvo naudojama kuriant branduolį, ji gimė git
????
Kur mokytis git
?
Dokumentų kiekis, palyginti su „git“, yra stulbinantis, net jei mes tiesiog paimtume „man“ puslapius, kurie buvo kartu su diegimu, mes turėtume nepaprastai daug skaityti. Aš asmeniškai randu git knyga gana gerai suprojektuotas, net aš išverčiau kai kuriuos 7 skyriaus segmentus, dar turiu kelis, bet duok laiko 😛 gal šį mėnesį galiu išversti, kas liko iš tos dalies.
Ką git daro?
„Git“ sukurta taip, kad būtų greita, efektyvi, paprasta ir palaikanti didelę informacijos apimtį, juk branduolio bendruomenė ją sukūrė savo programinei įrangai, kuri yra vienas didžiausių bendrų laisvos programinės įrangos kūrinių pasaulyje ir turi šimtus įmokų per valandą kodų bazėje, viršijančioje milijoną eilučių.
Įdomus „git“ dalykas yra duomenų versijų palaikymo būdas. Senais laikais (kitos versijų valdymo programos) buvo suspausti visi esami failai tam tikru istorijos momentu, pavyzdžiui, atsarginės. Atlikdamas a, Gitas laikosi kitokio požiūrio commit
pažymėtas istorijos taškas, tas istorijos taškas turi daugybę modifikacijų ir veikia, dienos pabaigoje visos modifikacijos laikui bėgant sujungiamos ir gaunami failai, kad būtų galima juos suspausti arba pažymėti kaip versijos. Kadangi žinau, kad visa tai skamba komplikuotai, pasiimsiu jus į stebuklingą kelionę kaip super pagrindinį pavyzdį.
Mažas skaičiavimo projektas
Skaičiavimo programa bus programa, kuri ras nurodyto skaičiaus kvadratus, mes tai padarysime C ir tai bus kuo paprasčiau, todėl nesitikėkite iš manęs daug saugumo patikrinimų. Pirmiausia mes sukursime saugyklą, aš padarysiu tai kartu su Github, kad vienu akmeniu užmuščiau du paukščius:
Mes pridėjome keletą gana paprastų dalykų, tokių kaip licencija (labai svarbu, jei norite apsaugoti savo darbą, mano atveju priversti juos pasidalinti rezultatais, jei jie nori jį naudoti kaip pagrindą: P)
Dabar eikime į mūsų brangų terminalą, git clone
yra komanda, atsakinga už atsisiųsti saugyklą, esančią url
priskyrė ir sukuria vietinę kopiją mūsų kompiuteryje.
Dabar patikrinkime git log
kas nutiko mūsų projekto istorijoje:
Čia mes turime daug skirtingų spalvų informacijos: pabandykime tai paaiškinti:
pirmoji geltona eilutė yra „įsipareigoti brūkšninį kodą“, kiekvienas įsipareigojimas turi savo unikalų identifikatorių, kuriuo galite atlikti daugybę dalykų, bet mes jį išsaugosime vėlesniam laikui. Dabar mes turime HEAD
Celestės ir master
žalias. Tai yra „rodyklės“, jų funkcija yra nurodyti dabartinę mūsų istorijos vietą (HEAD
) ir filialą, kuriame dirbame savo kompiuteryje (master
).
origin/master
yra interneto atitikmuo, origin
yra numatytasis vardas, priskirtas mūsų URL
Ir master
yra šaka, kurioje dirbate ... kad būtų paprasčiau, tie, kurie turi /
yra tie, kurie nėra mūsų komandoje, tačiau yra nuorodos į tai, kas yra internete.
Tada mes turime autorių, datą ir laiką bei įsipareigojimų santrauką. Tai nedidelė apžvalga to, kas įvyko tuo istorijos momentu, labai svarbi daugelyje projektų ir yra pasmerkta daug informacijos. Pažvelkime atidžiau į tai, kas įvyko įsipareigojime su komanda git show <código-de-commit>
Komanda „git show“ patenka į šį ekraną pleistro formatu, kur galite pamatyti, kas buvo pridėta ir kas buvo pašalinta (jei kažkas buvo pašalinta) tuo metu istorijoje, kol kas mums rodo tik tai, kad įrašai .gitignore
,README.md
y LICENSE
.
Dabar eikime prie reikalo, parašykime failą 🙂 sukursime pirmąjį etapą mūsų istorijoje 😀:
Trumpai tariant, mes sukursime programą, kuri mums parodys paprastų argumentų skaičių, pateiktą ją vykdant
Tai buvo lengva 🙂 dabar pažiūrėkime šią naudingą komandą: git status
Kažkokia nuoširdi siela išvertė gitą, kad būtų lengva sekti, čia mes turime daug naudingos informacijos, žinome, kad esame pagrindiniame filiale, kad esame atnaujinti origin/master
(„Github“ filialas), turime neužtikrintus failus! ir kad jas pridėtume, turime naudoti git add
, pabandykime 🙂
Dabar turime naują žalią erdvę, kurioje rodomas failas, kurį pridėjome prie darbo srities. Šioje vietoje galime sugrupuoti savo pokyčius, kad galėtume įsipareigoti, įsipareigojimą sudaro etapas per visą mūsų projekto istoriją, mes ketiname sukurti įsipareigojimą 🙂 git commit
Trumpai paaiškinta, kad geltona linija yra mūsų įsipareigojimo pavadinimas, aš rašau main.c, kad tik vizualiai paminėčiau. Juodas tekstas yra pakeitimų, padarytų nuo ankstesnio įsipareigojimo iki šiol, paaiškinimas: išsaugome failą ir pamatysime, kad įsipareigojimas išsaugotas registre.
Dabar pamatysime savo projekto istoriją git log
Vėlgi žurnale galime pamatyti, kad žalios ir raudonos linijos skiriasi, tai yra todėl, kad mūsų kompiuteryje mes įsipareigojame aukščiau tų, kurie saugomi internete. Mes tęsime darbą, tarkime, kad dabar aš noriu parodyti pranešimas, jei vartotojas programoje pateikia daugiau nei vieną argumentą (dėl kurio skaičiuoklė bus supainiota 🙂)
Kaip matome, mūsų programa labai išaugo 😀, dabar mes turime funkciją imprimir_ayuda()
kuriame pateikiamas pranešimas apie tai, kaip naudoti skaičiavimus, ir laukelyje main()
dabar mes darome apžvalgą su if
(Kažką, ką pamatysime programavimo pamokoje kitu metu, kol kas reikia tik žinoti, kad jei į skaičiuoklę įvedama daugiau nei 2 argumentai, programa baigiasi ir rodoma pagalba. Vykdykime tai:
Kaip matote, dabar jis išspausdina pateiktą numerį vietoj argumentų skaičiaus, bet to dar nesakiau 🙂 smalsuoliams echo $?
rodo paskutinės vykdomos programos išėjimo kodą, kuris yra 1
nes baigėsi klaida. Dabar apžvelkime, kaip vyksta mūsų istorija:
Dabar mes žinome, kad esame 1 įsipareigoję prieš „Github“, kad byla main.c
buvo modifikuotas, sukursime kitą įsipareigojimą atlikdami git add main.c
ir git commit
????
Dabar mes buvome šiek tiek konkretesni, nes įdiegėme funkciją ir pakeitėme patvirtinimo kodą. Dabar, kai jis bus išsaugotas, apžvelgsime paskutinius pakeitimus. Mes galime tai pamatyti git show HEAD
Dabar galite pamatyti raudonas ir žalias linijas, mes pridėjome biblioteką stdlib.h
, pakeitė didelę kodo dalį ir įtraukė funkciją į mūsų istoriją.
Dabar mes pamatysime žurnalą: (git log
)
Matome, kad esame du įsipareigojimai prieš „Github“ versiją, mes šiek tiek išlyginsime žymeklį 🙂 git push origin master
Tai sakydami išsiųskite mano įsipareigojimus URL origin
ant šakos master
Sveikiname! Dabar jūsų pakeitimai susiję su „Github“, ar netikite manimi? peržiūrėkime 😉
Dabar mes turime 3 įsipareigojimus „Github 🙂“
Santrauka
Mes palietėme pagrindinius git
, dabar jie gali sukurti paprastą darbo eigą savo projektuose, tai vargu ar yra kažkas iš visų įvairiausių dalykų, kuriuos galima padaryti su „git“, tačiau tai tikrai pats praktiškiausias ir kasdienis dalykas kūrėjui ar tinklaraštininkui. Skaičiuoklė nesibaigė, bet tai paliksime kitam kartui 😉 Labai ačiū, kad patekote čia ir tikiuosi, kad tai padės jums dalyvauti keliuose projektuose 😀 Sveikinimai
Sveiki ... Aš nežinau, ar jūs, bet nematau šios ataskaitos vaizdų ...
saludos
Tai buvo mano naršyklės problema. Gėda dėl susierzinimo.
Aš vis tiek turiu jį perskaityti išsamiau, aš esu naujokas.
Puikus straipsnis pradedant nuo „git“, nors rekomenduoju užsirašyti, kad suprastum detalę.
Keli dalykai man nebuvo aiškūs:
koks variantas Pridėti .gitignore Cnors spėju, kad pamatysiu, kai praktikuosiu,
Kodėl „git add main.c“ reikia atlikti dar kartą prieš kitą „git“ įsipareigojimą, ar pridėjus main.c liepiama „git“ palyginti tą failą su tinklo versija? Ar jis automatiškai nepalygina visų pridėtų failų stebėjimui?
Sveiki, Guillermo, gerai, kad jums pasirodė naudinga atsakyti į jūsų klausimus:
.gitignore yra failas, nurodantis „git“, kuriuos formatus ar šablonus ignoruoti, šiuo atveju pasirinkus „C“, bus ignoruojami .o failai ir kiti, sugeneruoti kompiliavimo metu, o tai yra gerai, nes kitaip jūsų „git“ iškart pašėltų kiekvieno kompiliavimo ir tolesnio tyrimo 🙂 galite patikrinti, ar daug formatų, kurių trūksta, jo C šablone atlikdami katę arba naudodami teksto redaktorių.
Nors „git“ stebės kiekvieną failą, pridėtą prie darbo medžio, būtina konkrečiai pasirinkti, kurie failai bus įvesti į kitą įsipareigojimą, ir pateikti pavyzdį. Tarkime, kad jūsų darbas paskatino jus modifikuoti 5 skirtingus failus anksčiau mokėti pamatyti rezultatą. Jei norite būti šiek tiek konkretesnis ir paaiškinti, kas daroma kiekviename, galite padaryti git add file1; git įsipareigoti; git pridėti failą2; git įsipareigoti ... 3,4,5; git įsipareigoti. Tokiu būdu jūsų istorija yra švari, o pokyčiai gerai apibrėžti. Jei jums teks ką nors pakeisti arba grąžinti (labiau pažengusias temas), galite pakeisti konkrečius dalykus arba pridėti konkrečių dalykų, nekeisdami likusio.
Tikiuosi, kad tai padės sveikinimai ir ačiū, kad paklausėte
PS: „git add“ nesako lyginti su tinklo versija, tačiau su ankstesniu įsipareigojimu jūsų darbo eilutėje, jei jis buvo vietinis (žalias), jis palygins jį su tuo, jei jis buvo nuotolinis (raudonas), jis bus palyginti su tuo kitu. Tik tam, kad paaiškintum 😉
Puiku, žinoma, tai paaiškina.