Pisanje vlastitih priča s git-om

Pozdrav svima 🙂 Prije nastavka s tekstovima popisa narudžbi, želim proslaviti izlazak gita 2.16 zahvalivši se svima koji su poslali zakrpu i svakom od korisnika, ukupno smo imali oko 4000 redova između ažuriranja i ispravki , što ne govori dobro o mojoj prvoj verziji, ali govori o vašoj ljubaznosti 🙂 Hvala! Sad ću vam otkriti malu tajnu, do sada nije bilo vremena kada nisam sjeo da napišem članak i puno razmišljao o njemu, obično samo pišem u nizu, a onda dobri gušter primi dobrotu ispravite moje greške u kucanju 🙂 pa hvala i njemu.

Ovo nije najbolje kada govorimo o pisanju članaka, navodno bi trebao imati cilj i izgraditi strukturu, te označavati male poene, kritike i sl. Itd. Ovo se ne odnosi samo na blogove općenito, već je i bitno u softver koji se pretvara da je dobar 🙂 Za ovaj zadatak i nakon nekih problema sa softverom za kontrolu verzija koji je korišten u razvoju jezgre prije nekoliko godina, rođen je git 🙂

Gdje naučiti git?

Količina dokumentacije oko gita je zapanjujuća, čak i ako bismo uzeli man stranice koje su došle s instalacijom, imali bismo ogromnu količinu čitanja. Ja lično pronalazim git book prilično dobro dizajniran, čak sam i preveo neke segmente odjeljka 7, još uvijek mi nedostaje nekoliko, ali dajte mi vremena 😛 možda u ovom mjesecu mogu prevesti ono što je ostalo od tog odjeljka.

Šta radi git?

Git je dizajniran da bude brz, efikasan, jednostavan i podržava velike količine informacija, uostalom, kernel zajednica ga je kreirala za svoj softver, koji je jedno od najvećih zajedničkih djela besplatnog softvera na svijetu i ima stotine doprinosa po satu u kodnoj bazi koja premašuje milion redaka.

Zanimljivost gita je način održavanja verzija podataka. U stara vremena (drugi programi za kontrolu verzija) uzimali su obloge svih postojećih datoteka u određenom trenutku istorije, poput pravljenja a rezerva. Git ima drugačiji pristup kada izvodi a commit tačka u povijesti je označena, ta tačka u povijesti ima niz izmjena i djela, na kraju dana, sve izmjene se vremenom sastavljaju i dobivaju se datoteke kako bi se mogle komprimirati ili označiti kao prekretnice verzije. Budući da znam da sve ovo zvuči složeno, vodit ću vas na čarobno putovanje u super osnovnom primjeru.

Mali proračunski projekt

Kalkulacija će biti program koji će pronaći kvadrate određenog broja, učinit ćemo to u C i to će biti što jednostavnije, tako da ne očekujte puno sigurnosnih provjera od mene. Prvo ćemo stvoriti spremište, učinit ću to s Githubom da ubijem dvije ptice jednim kamenom:

Svoje. Christopher Diaz Riveros

Dodali smo nekoliko jednostavnih stvari poput licence (vrlo važno ako želite zaštititi svoj rad, u mom slučaju prisilite ih da dijele rezultate ako ga žele koristiti kao osnovu: P)

Idemo sada na naš dragi terminal, git clone je naredba koja je odgovorna za preuzimanje spremišta smještenog u url dodijeliti i stvoriti lokalnu kopiju na našem računaru.

Svoje. Christopher Diaz Riveros

Sada provjerimo sa git log šta se dogodilo u historiji našeg projekta:

Ovdje imamo puno informacija u različitim bojama 🙂 pokušajmo to objasniti:

prva žuta linija je "crtični kod za urezivanje", svaki urez ima svoj jedinstveni identifikator, s kojim možete učiniti puno stvari, ali sačuvat ćemo ga za kasnije. Sad jesmo HEAD celeste i master zelena. To su "pokazivači" čija je funkcija ukazivanje na trenutno mjesto naše povijesti (HEAD) i grana na kojoj radimo na računaru (master).

origin/master je pandan Internetu, origin je zadani naziv koji je dodijeljen našem URL, y master je grana u kojoj radite ... da bude jednostavnije, oni koji imaju / su oni koji nisu u našem timu, ali su reference na ono što je na Internetu.

Zatim imamo autora, datum i vrijeme i sažetak urezivanja. Ovo je mali pregled onoga što se dogodilo u tom trenutku istorije, vrlo važno za mnoge projekte i postoji mnogo osuđenih informacija. Pogledajmo detaljnije šta se dogodilo u urezivanju sa naredbom git show <código-de-commit>

Svoje. Christopher Diaz Riveros

Naredba git show nas vodi do ovog zaslona u formatu zakrpe, gdje možete vidjeti što je dodano i što je uklonjeno (ako je nešto uklonjeno) u to vrijeme u povijesti, do sada nam pokazuje samo da evidencije .gitignore,README.mdLICENSE.

Sada se bacimo na posao, napišimo datoteku 🙂 stvorit ćemo prvu prekretnicu u našoj povijesti 😀:

Svoje. Christopher Diaz Riveros

Ukratko, kreiraćemo program koji će nam pokazati broj argumenata proslijeđenih prilikom njegovog izvršavanja, jednostavno 🙂

Svoje. Christopher Diaz Riveros

To je bilo lako 🙂 sada da vidimo sljedeću korisnu naredbu: git status

Svoje. Christopher Diaz Riveros

Neka vrsta duše je prevela git da bi ga bilo lako pratiti, ovdje imamo puno korisnih informacija, znamo da smo u glavnoj grani i da smo ažurirani sa origin/master(grana Github), imamo nepraćene datoteke! i da bismo ih dodali moramo koristiti git add, probajmo 🙂

Svoje. Christopher Diaz Riveros

Sada imamo novi zeleni prostor u kojem se prikazuje datoteka koju smo dodali u radno područje. Na ovom mjestu možemo grupirati naše promjene kako bismo izvršili urezivanje, urezivanje se sastoji od prekretnice kroz povijest našeg projekta, mi ćemo stvoriti urezivanje 🙂 git commit

Svoje. Christopher Diaz Riveros

Ukratko objašnjeno, žuta linija je naslov našeg urezivanja, pišem main.c za puku vizualnu referencu. Crni tekst je objašnjenje promjena napravljenih od prethodnog urezivanja do sada 🙂 spremamo datoteku i vidjet ćemo kako je naše urezivanje spremljeno u registru.

Svoje. Christopher Diaz Riveros

Sada ćemo vidjeti povijest našeg projekta sa git log

Svoje. Christopher Diaz Riveros

Opet u dnevniku, sada možemo vidjeti da su se zelene i crvene linije razlikovale, jer smo na našem računaru predani iznad onih pohranjenih na Internetu 🙂 nastavit ćemo posao, pretpostavimo da sada želim pokazati poruka u slučaju da korisnik stavi više od jednog argumenta u program (što bi kalkulator zbunilo 🙂)

Kao što vidimo, naš program je jako porastao 😀, sada imamo funkciju imprimir_ayuda() koji prikazuje poruku o načinu korištenja proračuna i u bloku main() sada radimo pregled sa if(Nešto što ćemo vidjeti u vodiču za programiranje u neko drugo vrijeme, za sada je potrebno samo znati da ako se u kalkulatoru unese više od 2 argumenta, da se program završava i prikazuje pomoć. Izvršimo to:

Svoje. Christopher Diaz Riveros

Kao što vidite, sada ispisuje isporučeni broj umjesto broja argumenata, ali koji vam prije nisam rekao 🙂 za znatiželjnike echo $? pokazuje izlazni kod zadnjeg izvršenog programa, koji je 1 jer je greškom završilo. Pogledajmo sada kako ide naša priča:

Svoje. Christopher Diaz Riveros

Sada znamo da smo 1 predali ispred Githuba, odnosno datoteke main.c je modificiran, kreirajmo sljedeći urezivanje radeći git add main.c  a zatim git commit🙂

Svoje. Christopher Diaz Riveros

Sada smo bili malo precizniji, otkako smo implementirali funkciju i promijenili kod provjere valjanosti. Sada kada je spremljeno, pregledat ćemo našu posljednju promjenu. Možemo to vidjeti sa git show HEAD

Svoje. Christopher Diaz Riveros

Sada možete vidjeti crvene i zelene linije, dodali smo biblioteku stdlib.h, izmijenio veći dio koda i dodao funkciju u našu priču.

Sada ćemo vidjeti dnevnik: (git log)

Svoje. Christopher Diaz Riveros

Vidimo da smo dva zavjeta ispred verzije Github, malo ćemo izjednačiti marker 🙂 za to što koristimo git push origin master

Ovim kažemo, pošaljite moje obaveze na url origin na grani master

Svoje. Christopher Diaz Riveros

Čestitamo! Sada su vaše promjene na Githubu, zar mi ne vjerujete? pregledajmo ga review

Svoje. Christopher Diaz Riveros

Sada imamo 3 urezivanja na Githubu 🙂

Resumen

Dotaknuli smo se najosnovnijih aspekata git, sada mogu stvoriti jednostavan tijek rada u svojim projektima, ovo je jedva nešto od sve vrste različitih stvari koje se mogu učiniti s git-om, ali je zasigurno najpraktičnija i svakodnevna stvar za programera ili blogera. Nismo došli do kraja kalkulatora, ali to ćemo ostaviti za drugi put 😉 Hvala vam što ste došli ovdje i nadam se da će vam pomoći da sudjelujete u nekoliko projekata 😀 pozdrav


7 komentara, ostavi svoj

Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   Pablo rekao je

    Bok ... Ne znam jeste li, ali ne vidim slike u ovom izvještaju ...

    Saludos

  2.   Pablo rekao je

    To je bio problem s mojim preglednikom. Sramota za dosadu.

  3.   Tecprog World rekao je

    Moram ga pročitati detaljnije, ja sam novak.

  4.   Guillermo rekao je

    Odličan članak za početak s git-om, iako preporučujem vođenje bilješki kako bih razumio detalje.
    Nekoliko stvari mi nije bilo jasno:
    za šta je opcija Dodajte .gitignore Ciako pretpostavljam da ću to vidjeti kad budem vježbao,
    zašto morate ponoviti git add main.c prije sljedećeg git urezivanja, dodaje li main.c git-u da uporedi tu datoteku s mrežnom verzijom? Ne uspoređuje li automatski dodate datoteke za praćenje?

    1.    ChrisADR rekao je

      Pozdrav Guillermo 🙂 dobro je što ste smatrali da je korisno odgovoriti na vaša pitanja:

      .gitignore je datoteka koja govori git-u koje formate ili obrasce treba zanemariti, u ovom slučaju odabirom C uzrokuje zanemarivanje .o datoteka i ostalih koje se generiraju u vrijeme kompilacije, što je dobro jer bi u suprotnom vaš git trenutno poludio svake kompilacije i praćenja 🙂 možete provjeriti velik broj formata koje git izostavlja u svom C predlošku radeći mačku ili pomoću uređivača teksta.

      Iako će git pratiti svaku datoteku dodanu u radno stablo, potrebno je posebno odabrati koje će datoteke ući u sljedeću predaju, da bismo vam dali primjer, pretpostavimo da vas je vaš rad doveo do promjene prije 5 različitih datoteka moći vidjeti rezultat. Ako želite biti malo konkretniji i objasniti šta se radi u svakom od njih, možete napraviti git add file1; git commit; git dodaj datoteku2; git commit… .3,4,5; git commit. Na ovaj način vaša priča je čista i promjene su dobro definirane. A u slučaju da morate nešto promijeniti ili vratiti (naprednije teme), možete vratiti određene stvari ili dodati određene stvari bez da mijenjate ostalo.

      Nadam se da pomaže 🙂 pozdrav i hvala na pitanju

    2.    ChrisADR rekao je

      PS: git add ne kaže da se uspoređuje s verzijom na mreži, ali sa prethodnim urezivanjem u vašoj liniji posla, ako je bio lokalni (zeleni), uporedit će ga s onim, ako je bio udaljeni (crveni), hoće uporedi s tim drugim. Samo da pojasnim 😉

      1.    Guillermo rekao je

        Savršeno, naravno pojašnjava.