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 dobroti 🙂 Hvala! Sad ću vam otkriti malu tajnu, do sada nije bilo vremena kada nisam sjeo za pisanje članka i puno razmišljao o njemu, obično samo pišem u nizu, a onda dobri gušter pokaže dobrotu ispravite moje tipkarske pogreške 🙂 pa hvala i njemu.

Ovo nije najbolje kada govorimo o pisanju članaka, navodno bi trebao imati cilj i izgraditi strukturu, te označavati male točke, kritike i sl. Itd. Sada, 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. Osobno nalazim git knjiga prilično dobro dizajniran, čak sam i preveo neke segmente odjeljka 7, još uvijek ih imam nekoliko, ali dajte mi vremena 😛 možda u ovom mjesecu mogu prevesti ono što je preostalo od tog odjeljka.

Što radi git?

Git je dizajniran da bude brz, učinkovit, jednostavan i podržava velike količine informacija, na kraju krajeva, zajednica kernela kreirala ga je za svoj softver, što je jedno od najvećih zajedničkih djela slobodnog softvera na svijetu i ima stotine doprinosi po satu u kodnoj bazi koja premašuje milijun 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 povijesti, poput izrade a rezerva. Git ima drugačiji pristup kada izvodi a commit točka u povijesti je označena, ta točka u povijesti ima niz modifikacija i djela, na kraju dana, sve se preinake 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 komplicirano, 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-u i to će biti što jednostavnije, pa nemojte od mene očekivati ​​puno sigurnosnih provjera. Prvo ćemo stvoriti spremište, učinit ću to s Githubom da ubijem dvije ptice jednim kamenom:

Vlastiti. 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 dodijelili i stvorili lokalnu kopiju na našem računalu.

Vlastiti. Christopher Diaz Riveros

Sada provjerimo s git log što se dogodilo u povijesti našeg projekta:

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

prvi žuti redak je "crtični kod za urezivanje", svaki urezivanje ima svoj jedinstveni identifikator, s kojim možete učiniti puno stvari, ali spremit ćemo ga za kasnije. Sad jesmo HEAD od celeste i master zeleno. To su "pokazivači" čija je funkcija ukazivanje na trenutno mjesto naše povijesti (HEAD) i grana na kojoj radimo na računalu (master).

origin/master je pandan Internetu, origin je zadani naziv koji je dodijeljen našem URL, I 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 osvrt na ono što se dogodilo u tom trenutku povijesti, vrlo važno u mnogim projektima i postoji mnogo osuđenih informacija. Pogledajmo bliže što se dogodilo u urezivanju s naredbom git show <código-de-commit>

Vlastiti. Christopher Diaz Riveros

Naredba git show vodi nas na ovaj zaslon 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 😀:

Vlastiti. Christopher Diaz Riveros

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

Vlastiti. Christopher Diaz Riveros

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

Vlastiti. Christopher Diaz Riveros

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

Vlastiti. 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 mogli izvršiti predavanje, urezivanje se sastoji od prekretnice kroz povijest našeg projekta, mi ćemo stvoriti predavanje 🙂 git commit

Vlastiti. Christopher Diaz Riveros

Ukratko objašnjeno, žuta crta naslov je našeg predavanja, pišem main.c radi puke vizualne reference. Crni tekst je objašnjenje promjena napravljenih od prethodnog urezivanja do sada 🙂 spremamo datoteku i vidjet ćemo kako je naše urezivanje spremljeno u registar.

Vlastiti. Christopher Diaz Riveros

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

Vlastiti. Christopher Diaz Riveros

Opet u zapisniku, sada možemo vidjeti da su se zelene i crvene linije razlikovale, jer smo na našem računalu 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š je program jako porastao 😀, sada imamo funkciju imprimir_ayuda() koja prikazuje poruku o načinu korištenja izrač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 kalkulatiku unese više od 2 argumenta, da program završava i prikazuje se pomoć.

Vlastiti. Christopher Diaz Riveros

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

Vlastiti. Christopher Diaz Riveros

Sada znamo da smo 1 predali ispred Githuba, odnosno datoteke main.c je izmijenjen, kreirajmo sljedeći predaj čineći git add main.c  y luego git commit????

Vlastiti. Christopher Diaz Riveros

Sada smo bili malo precizniji, budući da smo implementirali funkciju i promijenili kod za provjeru valjanosti. Sad kad je spremljeno, pregledat ćemo našu posljednju promjenu. Možemo to vidjeti s git show HEAD

Vlastiti. Christopher Diaz Riveros

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

Sada ćemo vidjeti zapisnik: (git log)

Vlastiti. Christopher Diaz Riveros

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

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

Vlastiti. Christopher Diaz Riveros

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

Vlastiti. Christopher Diaz Riveros

Sada imamo 3 urezivanja na Githubu 🙂

Rezime

Dotaknuli smo se najosnovnijih aspekata git, sada mogu stvoriti jednostavan tijek rada u svojim projektima, ovo je jedva nešto od svih različitih stvari koje se mogu učiniti s git-om, ali to 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


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  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 obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   Pavle dijo

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

    pozdravi

  2.   Pavle dijo

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

  3.   Svijet Tecprog dijo

    Moram ga pročitati detaljnije, ja sam novak.

  4.   Guillermo dijo

    Izvrstan članak za početak s git-om, iako preporučujem vođenje bilješki kako bih razumio detalje.
    Nekoliko mi stvari nije bilo jasno:
    čemu služi opcija Dodajte .gitignore Ciako pretpostavljam da ću to vidjeti kad budem vježbao,
    zašto git add main.c mora biti ponovljen prije sljedećeg git urezivanja, da li add main.c govori gitu da tu datoteku usporedi s mrežnom verzijom? Ne uspoređuje li automatski sve dodane datoteke za praćenje?

    1.    ChrisADR dijo

      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 odabir 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 mačkom 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ći predaj, 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 što se radi u svakom od njih, možete napraviti git add file1; git commit; git dodaj datoteku2; git commit ... .3,4,5; git počiniti. 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 dijo

      PS: git add ne kaže za usporedbu s verzijom na mreži, ali s prethodnim urezivanjem u vašem poslu, ako je bio lokalni (zeleni), usporedit će ga s onim, ako je bio udaljeni (crveni), hoće usporedi s tim drugim. Samo da pojasnim 😉

      1.    Guillermo dijo

        Savršeno, naravno pojašnjava.