Je eigen verhalen schrijven met git

Hallo allemaal 🙂 Voordat ik verder ga met de verzoekenlijstteksten, wil ik de release van git 2.16 vieren door iedereen te bedanken die een patch heeft ingediend en elke gebruiker, in totaal hadden we ongeveer 4000 regels tussen updates en fixes, wat niet erg goed spreekt over mijn eerste versie, maar over jullie vriendelijkheid 🙂 Bedankt! Nu zal ik je een klein geheim vertellen, tot nu toe is er geen tijd geweest dat ik niet ging zitten om een ​​artikel te schrijven en er veel over nadacht, meestal typ ik gewoon gehaast, en dan corrigeert de goede hagedis mijn typefouten 🙂 dus ook dankzij hem.

Dit is niet het beste als we het hebben over het schrijven van artikelen, zogenaamd zou het een doel moeten hebben en een structuur moeten opbouwen, en kleine punten en revisies moeten markeren en enz. enz... Dit is niet alleen van toepassing op blogs in het algemeen, maar het is essentieel in een software die pretendeert goed te zijn 🙂 Voor deze taak, en na wat problemen met de versiebeheersoftware die een paar jaar geleden werd gebruikt bij de ontwikkeling van de kernel, werd het geboren git 🙂

waar te leren git?

De hoeveelheid documentatie rond git is enorm, zelfs als we alleen de handleidingpagina's zouden nemen die bij de installatie zijn geleverd, zouden we een enorme hoeveelheid leesmateriaal hebben. vind ik persoonlijk de git boek best goed ontworpen, zelfs ik heb enkele segmenten van sectie 7 vertaald, ik heb er nog een paar te gaan, maar geef me tijd 😛 misschien kan ik deze maand vertalen wat er nog over is van die sectie.

Wat doet Git?

Git is ontworpen om snel, efficiënt en eenvoudig te zijn en om grote hoeveelheden gegevens te ondersteunen. De kernelgemeenschap heeft het immers gemaakt voor hun software, een van de grootste vrije software-joint ventures ter wereld, met honderden bijdragen per uur aan een codebase van meer dan een miljoen regels.

Het interessante aan git is zijn manier om dataversies bij te houden. Vroeger (andere versiebeheerprogramma's) maakten zips van alle bestaande bestanden op een bepaald moment in de geschiedenis, zoals het doen van een backup. Git pakt het anders aan, door een commit een punt in de geschiedenis is gemarkeerd, dat punt in de geschiedenis heeft een reeks wijzigingen en werkt, aan het einde van de dag worden alle wijzigingen in de loop van de tijd samengevoegd en worden de bestanden verkregen om te kunnen comprimeren of markeren als versiemijlpalen. Omdat ik weet dat dit allemaal ingewikkeld klinkt, ga ik je meenemen op een magische reis door een super eenvoudig voorbeeld.

Klein rekenproject

De calculamatic zal een programma zijn dat de kwadraten van een bepaald getal zal vinden, we doen het in C en het zal zo eenvoudig mogelijk zijn, dus verwacht niet veel veiligheidscontroles van mij. Eerst gaan we een repository maken, ik zal het doen met Github om twee vliegen in één klap te slaan:

Eigen. Christopher Diaz Riveros

We hebben een paar simpele dingen toegevoegd, zoals de licentie (erg belangrijk als je je werk wilt beschermen, dwing ze in mijn geval om de resultaten te delen als ze het als basis willen gebruiken:P)

Nu gaan we naar onze geliefde terminal, git clone is de opdracht die verantwoordelijk is voor het downloaden van de repository in de url toegewezen en maak een lokale kopie op onze computer.

Eigen. Christopher Diaz Riveros

Laten we nu eens kijken met git log wat is er gebeurd in de geschiedenis van ons project:

Hier hebben we veel informatie in verschillende kleuren 🙂 we zullen proberen het uit te leggen:

de eerste gele lijn is de "commit barcode" elke commit heeft zijn eigen unieke identificatie, waar je veel mee kunt doen, maar dat bewaren we voor later. Nu hebben we HEAD van hemel en master groente. Dit zijn "wijzers", hun functie is om te wijzen naar de huidige locatie van onze geschiedenis (HEAD) en de branch waaraan we werken op onze computer (master).

origin/master is de tegenhanger van internet, origin is de standaardnaam die is toegewezen aan our URLEn master is de branche waar je aan werkt... om het simpel te houden, degenen die een / Het zijn degenen die niet in ons team zitten, maar verwijzingen zijn naar wat er op internet staat.

Dan hebben we de auteur, de datum en tijd en de samenvatting van de commit. Dit is een klein overzicht van wat er op dat moment in de geschiedenis is gebeurd, erg belangrijk in veel projecten en er staat veel informatie in. Laten we eens nader bekijken wat er gebeurde in de commit met het commando git show <código-de-commit>

Eigen. Christopher Diaz Riveros

De opdracht git show brengt ons naar dit scherm in patch-indeling, waar we kunnen zien wat er is toegevoegd en wat is verwijderd (als er iets is verwijderd) op dat moment in de geschiedenis, tot nu toe laat het ons alleen zien dat de bestanden zijn toegevoegd .gitignore,README.mdLICENSE.

Nu gaan we ons ding doen, we gaan een dossier schrijven 🙂 we zullen de eerste mijlpaal in onze geschiedenis creëren 😀 :

Eigen. Christopher Diaz Riveros

In het kort gaan we een programma maken dat ons het aantal argumenten laat zien dat is doorgegeven op het moment van uitvoering, simpel 🙂

Eigen. Christopher Diaz Riveros

Dat was gemakkelijk 🙂 laten we nu de volgende handige opdracht bekijken: git status

Eigen. Christopher Diaz Riveros

Een goedhartige ziel heeft git vertaald om het gemakkelijk te volgen te maken, we hebben hier veel nuttige informatie, we weten dat we op de master branch zitten, we zijn op de hoogte van origin/master(de Github-tak), dat we niet-gevolgde bestanden hebben! en dat we ze moeten gebruiken om ze toe te voegen git add, laten we het proberen 🙂

Eigen. Christopher Diaz Riveros

Nu hebben we een nieuwe groene ruimte, waarin het bestand wordt weergegeven dat we aan het werkgebied hebben toegevoegd. Hier kunnen we onze wijzigingen groeperen om een ​​commit te kunnen doen, de commit bestaat uit een mijlpaal in de geschiedenis van ons project, we gaan de commit maken 🙂 git commit

Eigen. Christopher Diaz Riveros

Kort uitgelegd, de gele lijn is de titel van onze commit, ik schrijf main.c alleen voor visuele referentie. De zwarte tekst is de uitleg van de wijzigingen die sinds de vorige commit tot nu zijn aangebracht 🙂 we slaan het bestand op en we zien onze commit opgeslagen in het logboek.

Eigen. Christopher Diaz Riveros

Laten we nu eens kijken naar de geschiedenis van ons project met git log

Eigen. Christopher Diaz Riveros

Opnieuw in het logboek, nu kunnen we zien dat de groene lijn en de rode lijn verschillen, dat komt omdat we op onze computer één commit hoger zijn dan degene die op internet zijn opgeslagen 🙂 laten we doorgaan met het werk, stel dat ik nu een bericht wil weergeven voor het geval de gebruiker meer dan één argument in het programma plaatst (waardoor de rekenmachine in de war zou raken 🙂)

Zoals we kunnen zien is ons programma flink gegroeid 😀 , nu hebben we de functie imprimir_ayuda() die een bericht weergeeft over het gebruik van calculamatica, en in het blok main() nu doen we een review met if(iets dat we op een ander moment in een programmeertutorial zullen zien, voorlopig is het alleen nodig om te weten dat als er meer dan 2 argumenten in de berekening worden ingevoerd, het programma eindigt en de hulp wordt weergegeven. Laten we het uitvoeren:

Eigen. Christopher Diaz Riveros

Zoals je nu kunt zien, wordt het afgeleverde nummer afgedrukt in plaats van het aantal argumenten, maar dat heb ik je nog niet eerder verteld 🙂 voor de nieuwsgierigen echo $? geeft de afsluitcode weer van het laatst uitgevoerde programma, dat is 1 omdat het op een fout is geëindigd. Laten we nu eens kijken hoe ons verhaal gaat:

Eigen. Christopher Diaz Riveros

Nu weten we dat we 1 commit voor zijn op Github, dat het bestand main.c is aangepast, laten we de volgende commit maken door te doen git add main.c  y luego git commit🙂

Eigen. Christopher Diaz Riveros

Nu zijn we wat specifieker, omdat we een functie hebben geïmplementeerd en de validatiecode hebben gewijzigd. Nu het is opgeslagen, gaan we onze laatste wijziging bekijken. We kunnen het zien met git show HEAD

Eigen. Christopher Diaz Riveros

Nu kun je de rode en groene lijnen zien, we hebben de bibliotheek toegevoegd stdlib.h, heeft een groot deel van de code aangepast en de functie aan ons verhaal toegevoegd.

Laten we nu het logboek bekijken: (git log)

Eigen. Christopher Diaz Riveros

We kunnen zien dat we twee commits voor zijn op de Github-versie, we gaan de score een beetje egaliseren 🙂 daarvoor gebruiken we git push origin master

Hiermee zeggen we, stuur mijn commits naar de url origin op de tak master

Eigen. Christopher Diaz Riveros

Gefeliciteerd! Nu zijn je wijzigingen op Github, geloof je me niet? laten we eens kijken 😉

Eigen. Christopher Diaz Riveros

We hebben nu alle 3 de commits op Github 🙂

Overzicht

We hebben de meest elementaire aspecten van git, nu kunnen ze een eenvoudige workflow in hun projecten creëren, dit is bijna niets van alle grote verscheidenheid aan dingen die met git kunnen worden gedaan, maar het is zeker het meest praktische en alledaagse voor een ontwikkelaar of blogger. We hebben het einde van de rekenmachine nog niet bereikt, maar dat laten we voor een andere keer 😉 Heel erg bedankt dat je hier bent gekomen en ik hoop dat het je helpt om deel te nemen aan verschillende projecten 😀 Groeten


7 reacties, laat de jouwe achter

Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.

  1.   PABLO zei

    Goedemorgen... Ik weet niet of u, maar ik kan de afbeeldingen van dit rapport niet zien...

    groeten

  2.   PABLO zei

    Het was een probleem met mijn browser. Sorry voor het ongemak

  3.   Tecprog Wereld zei

    Ik moet het nog in meer detail lezen, ik ben een nieuweling.

  4.   Guillermo zei

    Geweldig artikel om met git te beginnen, hoewel ik aanraad om aantekeningen te maken om de details te begrijpen.
    Een aantal dingen zijn mij niet duidelijk:
    waar is de optie voor Voeg .gitignore C toe, hoewel ik veronderstel dat ik het zal zien als ik het oefen,
    waarom moet je git add main.c opnieuw doen voor de volgende git commit, zegt add main.c tegen git om dat bestand te vergelijken met de netwerkversie? vergelijkt het niet automatisch alle bestanden die zijn toegevoegd voor tracking?

    1.    Chris ADR zei

      Hallo Guillermo 🙂 Ik ben blij dat je het nuttig vond om je vragen te beantwoorden:

      .gitignore is een bestand dat git vertelt welke formaten of patronen moeten worden genegeerd, in dit geval zorgt het selecteren van C ervoor dat .o-bestanden worden genegeerd en andere die tijdens het bouwen worden gegenereerd, wat goed is omdat je git anders gek zou worden bij elke build- en traceertijd 🙂 je kunt het grote aantal formaten controleren dat git weglaat in zijn C-sjabloon door cat of een teksteditor te gebruiken.

      Hoewel git elk bestand bijhoudt dat aan de werkboom wordt toegevoegd, moet je specifiek selecteren welke bestanden naar de volgende commit gaan, bijvoorbeeld, laten we zeggen dat je taak ertoe heeft geleid dat je 5 verschillende bestanden hebt gewijzigd voordat je de uitvoer kunt zien. Als je wat specifieker wilt zijn en wilt uitleggen wat iedereen doet, kun je git add file1; git commit;git voeg bestand toe2;git commit….3,4,5; git vastleggen. Op deze manier is je verhaal schoon en zijn de veranderingen goed gedefinieerd. En in het geval dat u iets moet veranderen, of terug moet (meer geavanceerde onderwerpen), kunt u specifieke dingen terugdraaien of specifieke dingen toevoegen zonder de rest te veranderen.

      Ik hoop dat het helpt 🙂 proost en bedankt voor het vragen

    2.    Chris ADR zei

      PS: git add zegt niet om te vergelijken met de versie op het netwerk, maar met de vorige commit in je branche, als het lokaal (groen) was, zal het het vergelijken met die, als het op afstand was (rood) zal het het vergelijken met die andere. Even ter verduidelijking 😉

      1.    Guillermo zei

        Perfect, dat verduidelijkt natuurlijk.