At skrive dine egne historier med git

Hej alle 🙂 Før jeg fortsætter med teksterne på ordrelisten, vil jeg fejre frigivelsen af ​​git 2.16 ved at takke hver af dem, der sendte en programrettelse, og hver enkelt af brugerne, i alt havde vi som 4000 linjer mellem opdateringer og rettelser , som ikke taler meget om min første version, men det taler om din venlighed 🙂 Tak! Nu vil jeg fortælle dig en lille hemmelighed, indtil nu har der ikke været et tidspunkt, hvor jeg ikke har sat mig ned for at skrive en artikel og har tænkt meget over det, normalt skriver jeg bare i træk, og så tager den gode firben venlighed af rette mine skrivefejl 🙂 så tak til ham også.

Dette er ikke det bedste, når vi taler om at skrive artikler, det skal angiveligt have et mål og opbygge en struktur og markere små punkter og anmeldelser osv. Osv. Nu gælder dette ikke kun blogs generelt, men det er vigtigt i en software, der foregiver at være god 🙂 Til denne opgave, og efter nogle problemer med den versionskontrolsoftware, der blev brugt i kerneudviklingen for et par år siden, blev den født git 🙂

Hvor skal man lære git?

Mængden af ​​dokumentation omkring git er forbløffende, selvom vi bare tog de mandesider, der fulgte med installationen, ville vi have en enorm læsning. Jeg finder personligt git book ganske godt designet, selv jeg har oversat nogle af segmenterne i afsnit 7, jeg mangler stadig et par, men giv mig tid 😛 måske i denne måned kan jeg oversætte det, der er tilbage af det afsnit.

Hvad gør git?

Git er designet til at være hurtig, effektiv, enkel og til at understøtte store mængder information, trods alt oprettede kernefællesskabet det til deres software, som er et af de største fælles værker af gratis software i verden og har hundreder af bidrag pr. time i en kodebase, der overstiger en million linjer.

Det interessante ved git er dens måde at vedligeholde versionerne af dataene på. Tidligere (andre versionskontrolprogrammer) tog komprimeringer af alle eksisterende filer på et tidspunkt i historikken, såsom at lave en backup. Git tager en anden tilgang, når man udfører en commit et punkt i historikken er markeret, det punkt i historien har en række ændringer og fungerer, i slutningen af ​​dagen er alle ændringer sat sammen over tid, og filerne opnås for at kunne komprimere eller markere som milepæle for versioner. Da jeg ved alt dette lyder kompliceret, vil jeg tage dig med på en magisk rejse i et super grundlæggende eksempel.

Lille beregningsprojekt

Calculamatics vil være et program, der finder firkanterne for et givet tal, vi gør det i C, og det vil være så simpelt som muligt, så forvent ikke en masse sikkerhedstjek fra mig. Først skal vi oprette et arkiv, jeg vil gøre det med Github for at dræbe to fugle i en sten:

Egen. Christopher Diaz Riveros

Vi har tilføjet et par enkle ting som licensen (meget vigtigt, hvis du vil beskytte dit arbejde, i mit tilfælde tvinge dem til at dele resultaterne, hvis de vil bruge det som en base: P)

Lad os nu gå til vores kære terminal, git clone er den kommando, der er ansvarlig for at downloade lageret i url tildelt og opret en lokal kopi på vores computer.

Egen. Christopher Diaz Riveros

Lad os nu tjekke med git log hvad der er sket i vores projekts historie:

Her har vi en masse information i forskellige farver 🙂 lad os prøve at forklare det:

den første gule linje er "commit stregkode", hver commit har sin egen unikke identifikator, som du kan gøre en masse ting med, men vi gemmer det til senere. Nu har vi det HEAD af celeste og master grøn. Disse er "pointer", deres funktion er at pege på den aktuelle placering af vores historie (HEAD) og den gren, vi arbejder på på vores computer (master).

origin/master er modstykke til Internettet, origin er standardnavnet, der er tildelt vores URL, Og master er den gren, hvor du arbejder ... for at holde det enkelt, dem, der har en / er dem, der ikke er på vores team, men er referencer til, hvad der findes på internettet.

Så har vi forfatteren, datoen og klokkeslættet og forpligtelsesoversigten. Dette er en lille gennemgang af, hvad der er sket på det tidspunkt i historien, meget vigtigt i mange projekter, og der er en masse information fordømt. Lad os se nærmere på, hvad der skete i forpligtelsen med kommandoen git show <código-de-commit>

Egen. Christopher Diaz Riveros

Kommandoen git show fører os til denne skærm i patchformat, hvor du kan se, hvad der er tilføjet, og hvad der er blevet fjernet (hvis noget var blevet fjernet) på det tidspunkt i historien, indtil videre viser det os kun, at optegnelser .gitignore,README.mdLICENSE.

Lad os nu komme i gang, lad os skrive en fil 🙂 vi opretter den første milepæl i vores historie 😀:

Egen. Christopher Diaz Riveros

Kort fortalt vil vi oprette et program, der viser os antallet af argumenter, der er sendt, når det udføres, simpelt 🙂

Egen. Christopher Diaz Riveros

Det var let - lad os nu se følgende nyttige kommando: git status

Egen. Christopher Diaz Riveros

En godhjertet sjæl har oversat git for at gøre det let at følge, her har vi en masse nyttige oplysninger, vi ved, at vi er i mestergrenen, som vi er opdateret med origin/master(Github-filialen), vi har filer, der ikke er sporet! og at vi skal bruge dem for at tilføje dem git add, lad os prøve 🙂

Egen. Christopher Diaz Riveros

Nu har vi et nyt grønt område, hvor den fil, som vi har tilføjet til arbejdsområdet, vises. På dette sted kan vi gruppere vores ændringer for at kunne foretage en forpligtelse, forpligtelsen består af en milepæl gennem hele projektets historie, vi skal oprette forpligtelsen create git commit

Egen. Christopher Diaz Riveros

Kort forklaret er den gule linje titlen på vores forpligtelse, jeg skriver main.c til en visuel reference. Den sorte tekst er forklaringen på de ændringer, der er foretaget siden den foregående forpligtelse indtil nu 🙂 vi gemmer filen, og vi ser vores forpligtelse gemt i registreringsdatabasen.

Egen. Christopher Diaz Riveros

Nu skal vi se historien om vores projekt med git log

Egen. Christopher Diaz Riveros

Igen i loggen kan vi nu se, at de grønne og røde linjer har afvundet, det er fordi vi på vores computer er en forpligtelse over dem, der er gemt på internettet 🙂 vi vil fortsætte arbejdet, antag at nu vil jeg vise en besked, hvis brugeren lægger mere end et argument i programmet (hvilket ville gøre lommeregneren forvirret 🙂)

Som vi kan se, er vores program vokset meget 😀, nu har vi funktionen imprimir_ayuda() som viser en besked om, hvordan man bruger beregninger, og i blokken main() nu laver vi en anmeldelse med if(Noget, som vi vil se i en programmeringsvejledning på et andet tidspunkt, for nu er det kun nødvendigt at vide, at hvis mere end 2 argumenter er indtastet til calculamatics, at programmet slutter og hjælpen vises. Lad os udføre det:

Egen. Christopher Diaz Riveros

Som du kan se, udskriver det nu det nummer, der er leveret i stedet for antallet af argumenter, men som jeg ikke før havde fortalt dig 🙂 for de nysgerrige echo $? viser udgangskoden for det sidst udførte program, hvilket er 1 fordi det er ender med en fejltagelse. Lad os nu gennemgå, hvordan vores historie går:

Egen. Christopher Diaz Riveros

Nu ved vi, at vi er 1 forpligtet foran Github, at filen main.c er blevet ændret, lad os oprette den næste forpligtelse ved at gøre git add main.c  og derefter git commit🙂

Egen. Christopher Diaz Riveros

Nu har vi været lidt mere specifikke, da vi har implementeret en funktion og ændret valideringskoden. Nu hvor det er blevet gemt, vil vi gennemgå vores sidste ændring. Vi kan se det med git show HEAD

Egen. Christopher Diaz Riveros

Nu kan du se de røde og grønne linjer, vi har tilføjet biblioteket stdlib.h, ændrede meget af koden og tilføjede funktionen til vores historie.

Nu skal vi se loggen: (git log)

Egen. Christopher Diaz Riveros

Vi kan se, at vi er to forpligtelser foran Github-versionen, vi vil udligne markøren en smule 🙂 for det bruger vi git push origin master

Med dette siger vi, send mine forpligtelser til url origin på grenen master

Egen. Christopher Diaz Riveros

Tillykke! Nu er dine ændringer på Github, tror du ikke på mig? lad os gennemgå det 😉

Egen. Christopher Diaz Riveros

Nu har vi de 3 forpligtelser på Github 🙂

Resumé

Vi har berørt de mest basale aspekter af git, nu kan de skabe en simpel arbejdsgang i deres projekter, dette er næppe noget af alt det store udvalg af ting, der kan gøres med git, men det er bestemt den mest praktiske og hverdagslige ting for en udvikler eller blogger. Vi har ikke nået slutningen af ​​lommeregneren, men det vil vi lade være i endnu et øjebliko Mange tak for at komme her, og jeg håber det hjælper dig med at deltage i flere projekter 😀 Hilsen


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.

  1.   Paul sagde han

    Godmorgen... Jeg ved ikke, om du, men jeg kan ikke se billederne af denne rapport...

    hilsen

  2.   Paul sagde han

    Det var et problem med min browser. Beklager ulejligheden.

  3.   Tecprog verden sagde han

    Jeg skal stadig læse det mere detaljeret, jeg er nybegynder.

  4.   Bill sagde han

    Fantastisk artikel til at starte med git, selvom jeg anbefaler at tage noter for at forstå detaljerne.
    Et par ting er ikke klare for mig:
    hvad er muligheden for Tilføj .gitignore Cselvom jeg formoder, at jeg vil se det, når jeg øver det,
    hvorfor skal du lave git add main.c igen før næste git commit, fortæller add main.c git at den skal sammenligne den fil med netværksversionen? sammenligner den ikke automatisk alle filer tilføjet til sporing?

    1.    ChrisADR sagde han

      Hej Guillermo 🙂 Jeg er glad for, at du fandt det nyttigt at besvare dine spørgsmål:

      .gitignore er en fil, der fortæller git, hvilke formater eller mønstre, der skal ignoreres, i dette tilfælde får valg af C .o-filer til at blive ignoreret og andre, der genereres på kompileringstidspunktet, hvilket er godt, fordi ellers ville dit git blive vanvittigt med det samme fra hver build og følg op 🙂 du kan tjekke det store antal formater, som git udelader i sin C-skabelon ved at lave cat eller med en teksteditor.

      Selvom git vil holde styr på hver fil, der føjes til arbejdstræet, er det nødvendigt specifikt at vælge, hvilke filer der skal gå ind i den næste commit, for at give dig et eksempel, antag at dit arbejde har fået dig til at ændre 5 forskellige filer før du kan at se resultatet. Hvis du vil være lidt mere specifik og forklare, hvad hver enkelt gør, kan du gøre git add file1; git commit;git tilføje fil2;git commit….3,4,5; git commit. På denne måde er din historie ren og ændringerne veldefinerede. Og hvis du skal ændre noget eller vende tilbage (mere avancerede emner), kan du vende tilbage til specifikke ting eller tilføje specifikke ting uden at ændre resten.

      Håber det hjælper 🙂 skål og tak fordi du spørger

    2.    ChrisADR sagde han

      PS: git add siger ikke at man skal sammenligne med versionen på netværket, men med den tidligere commit i dit arbejde, hvis det var lokalt (grønt), vil det sammenligne det med det, hvis det var eksternt (rødt) det vil sammenligne med den anden Bare for at præcisere 😉

      1.    Bill sagde han

        Perfekt, det tydeliggør selvfølgelig.