Håndtering af filændringer med Git

Git fungerer på en interessant måde at bære en filændringshistorik. Selvom det kan se ud til, at det leder efter ændringerne i hver af disse, er det i virkeligheden at bære en fil kaldet indeks, hvor de ændringer, der sker, indsættes. På denne måde bare ved at læse filen indeks du kan vide, hvilke filer og hvilket indhold der er blevet ændret.

Når vi forstår det koncept om hvordan Git Det tager ændringerne registreret, det er når vi kan begynde at drage fuld fordel af værktøjet, da det er på dette tidspunkt, hvor vi vil kunne begynde at bruge de forskellige kommandoer til at tage ændringerne fra vores lager og håndtere dem fra en logisk perspektiv.

Klassificering af filer i Git


Inden vi fortsætter med dybere punkter, skal vi se hvordan Git klassificerer dine filer. Dette betyder ikke en klassificering efter filtype på grund af dens udvidelse, men snarere ved dens status i forhold til vores lager og dets indeks.

Vi har dybest set tre typer filer i GIT, hver enkelt har sit eget øjeblik i depotet, lad os se, hvad disse er:

SporetDenne filtype er allerede tilføjet til vores lager og tages i betragtning af indeks og en fil tager denne tilstand, når vi har tilføjet den med følgende kommando.

 git tilføj filnavn
IgnoreretI denne klassifikation en fil ignoreret tages ikke i betragtning af Git Når du foretager ændringer, klassificeres filer, der gennemgår mange ændringer, eller som ikke er afgørende for projektets stabilitet, normalt på denne måde, f.eks. Billedfiler på grund af deres vægt eller måske scripts af Database at vi ikke altid behøver at ændre. For at ignorere en fil skal dens navn indgå i en fil, der hedder .gitignore og tilføj det til vores lager.

UsporetDenne filtype tilhører endnu ikke vores lager, fordi vi ikke har tilføjet det endnu, og det er nyt i filsystemet, det sker normalt, når vi opretter en ny fil i et allerede initialiseret lager eller når vi initialiserer et depot i en mappe der har eksisterende filer.

Praktisk eksempel på filklassificering


Lad os nu se et lille praktisk eksempel på, hvordan vi kan registrere filtyper i et lager Git, hertil skal vi følge følgende trin:

1- Vi skal oprette en ny mappe på vores computer, der hedder git filer.

2- Når mappen er oprettet, kommer vi til at indtaste den fra vores konsol, og der skal vi udføre kommandoen git init og så gør vi det git status For at se status for vores lager, lad os se, hvordan anvendelsen af ​​de tidligere kommandoer ser ud:

3- Når vi har gennemført det foregående trin, vil vi have et depot Git initialiseret og klar til at arbejde, så kan vi oprette en ny fil i den mappe, og vi vil gøre det igen git status For at se ændringen skal vi have vores nye fil under klassifikationen usporet.

4- Vi kommer til at gentage det foregående trin og oprette en ny fil, hvis vi ser resultatet af at gøre det igen git status vi tæller begge filer, lad os se:

5- Nu skal vi oprette en ny fil kaldet .gitignore, bemærk punktet før filen, og indeni skal vi placere navnet på en af ​​vores tidligere filer, vi gør igen git status og vi vil se, at nu får vi kun den fil, der ikke er i den .gitignore og filen .gitignore vi har lige oprettet:

6- Så vil vi lave en git tilføj. for at tilføje alle vores filer, og endelig vil vi udføre en git commit -m "initial commit" med dette tilføjelse af vores filer til depotet, hvis vi foretager en ændring i filen, som vi ikke placerer inde i .gitignore og vi gemmer det, hvis vi kører igen git status vi vil se en fil i status eller klassificering spores.

Kommandoen git add


I det foregående eksempel kunne vi se brugen af git tilføj og måske kan vi tænke, at det er en kommando mere over vores værktøj, men det er meget vigtigt, det er det, der tillader os tilføj en fil til vores lager hvis det endnu ikke findes i det, og det giver os også mulighed for at tilføje de ændringer, der er sket til en eksisterende fil i vores lager.

Hvordan bruges?Den har et par måder at bruge på, den mest almindelige er at gøre git tilføj filnavn, hvor vi fortæller ham, hvilken fil der skal tilføjes, eller hvis vi ikke kan gøre det git tilføj. hvor prikken repræsenterer alle de filer, der er blevet ændret eller ikke er i depotet.

Det er meget vigtigt, at vi efter at have foretaget ændringer i lageret tilføjer filerne med git tilføj, da vi ellers ikke vil kunne gemme vores ændringer udover at oprette forskellige versioner af filen, hvilket kan føre til en mulig konflikt i fremtiden.

Brug af git add


Inde i vores mappe git filer som vi har oprettet i det tidligere eksempel på selvstudiet, tilføjer vi en ny fil, som vi vil placere ny fil3 og derefter i den eksisterende fil, der ikke er i den .gitignore lad os lave en ændring.

Det, vi ønsker at opnå med dette, er at teste, hvordan vi bruger vores kommando git tilføj, lad os se, hvordan dette ser ud i vores kommandokonsol:

Efter at have fulgt de foregående instruktioner, skulle vi have fået noget lignende ovenstående på skærmen, hvor vi vises a ændret fil og a helt ny fil i depotet.

Nu skal vi tilføje den nye fil til depotet, men vi vil ikke gøre det med den eksisterende fil eller den, vi tidligere har ændret. Til dette skal vi bare gøre git tilføj vores filnavn. Så gør vi det git status. Lad os se:

Som vi kan se, tager vores lager allerede hensyn til den fil, vi har tilføjet med git tilføj, dette er den måde, hvorpå vi grundlæggende kan arbejde med ændringer af vores filer.

Slet filer fra lageret


Den næste handling, vi skal vide, hvordan vi udfører, er at fjerne filerne fra vores lager, da det er meget almindeligt, at vi ved en fejl har skabt noget, eller vi simpelthen sætter tingene i orden i det.

Der er to ting at tage højde for, vi kan fjerne filen fra indekset af vores lager, men gem filen i systemet i vores mappe, så hvis vi laver en git status Vi vil se den tilgængelig igen. Eller hvis vi ikke kan slette filen fra både vores mappe og fra indeks fra vores lager, til dette kan vi bruge kommandoen git rm.

Kommandoen git rm - -cachelagret


Ved at bruge kommandoen rm med den ekstra mulighed for cachelagret, hvad vi gør er at slette den pågældende fil fra indeksVi vil dog beholde den på vores computer, denne kommando bruges meget, når vi ikke ønsker at tilføje denne fil til vores lager endnu, men vi skal gemme de andre ændringer.

For at bruge det laver vi simpelthen kommandoen, når vi allerede har tilføjet med git tilføj nogle filer, lad os se, hvordan dette ser ud i vores kommandokonsol:

Vi bemærker, at filen ny fil3 som vi havde tilføjet til vores lager nu ikke er der og har klassificeringen usporet.

Kommandoen Git rm


Lad os nu se, hvordan du bruger kommandoen git rm, denne kommando er meget mere kraftfuld, da den direkte fjerner filen fra indeks og af fil, derfor skal vi være forsigtige, når vi beslutter os for at bruge det i vores lager, er det meget sandsynligt, at når vi først har anvendt det, ikke vil vi kunne gendanne ændringen.

Lad os se i det følgende eksempel, hvordan det fungerer, når vi anvender det på en fil, i dette tilfælde vil vi tilføje ny fil3 med git tilføj og så vil vi søge om dette git rm:

Det ser vi, når vi gør det direkte git viser os en fejl og beder os om at foretage en tvungen sletning, når parameteren tilføjes -F til instruktionen skyldes dette ændringens betydning, endelig vil vi lave en git status og vi vil bemærke, at filen forsvandt fra vores lager i sin helhed.

Mere fra .gitignore


Vi kunne se, at vi kan tilføje en bestemt fil til vores fil .gitignoreMen når vi arbejder i et miljø, hvor vi håndterer hundredvis eller måske tusinder af filer, er det ikke særlig praktisk, derfor kan vi bruge mønstre.

Et mønster giver os mulighed for at angive til Git at en fil, der opfylder rækkefølgen af ​​tegn eller udtryk, skal ignoreres, med dette kan vi angive specifikke udvidelser, enten i hele projektet eller i en særlig mappe. Lad os se på et eksempel på dette.

* .jpg.webp den ignorerer alle .jpg.webp -filerne i vores projekt, men hvis vi vil beholde sporet af en især, skal vi bare tilføje:

 ! filnavn.jpg.webp
Det er så enkelt, vi har en stærk og kompleks struktur, der giver os mulighed for at holde vores lager opbevaret.

Med dette afslutter vi denne vejledning, vi har på en omfattende måde set den måde, hvorpå Git bærer eller administrerer ændringerne i vores filer, er det vigtigt at mestre dette spørgsmål, da vi med dette vil kunne arbejde mere effektivt i teammiljøer, hvor det håndteres Git som versionskontroller.

wave wave wave wave wave