Mest almindelige Git-fejl, og hvordan man løser dem

Foto af Ilya Pavlov på Unsplash

Hvis du nogensinde har arbejdet på et stort projekt med mange samarbejdspartnere, så brugte du tydeligvis Git som dit kontrolsystem. Og når du arbejder med noget så komplekst som Git, begår vi alle fejl. I denne artikel skal jeg diskutere nogle meget almindelige fejl, som programmerere har foretaget, mens de brugte Git, og hvordan man løser dem. Lad os komme i gang nu uden yderligere problemer

Stavet sidste begivenhed forkert

Efter nogle få timers kodning er det let for en stavefejl at snige sig ind på dine engagement-beskeder. Heldigvis er der en enkel løsning.

git commit - ændre sig

Dette åbner din editor og giver dig mulighed for at foretage en ændring af den sidste besked om besked. Ingen behøver at vide, at du stavede, "Første kommando" med tre "m".

Stavefejl på filialnavn

Lad os antage, det er næsten 15:00, og du har ikke haft din frokost endnu, så i din sult har du navngivet din nye gren-funktion-brunch. Lækker.

Der er også en løsning på dette. Vi omdøber denne gren på en lignende måde som hvordan vi omdøber en fil med mv-kommandoen: ved at flytte den til et nyt sted med det rigtige navn.

git branch -m feature-brunch feature-branch

Hvis du allerede har skubbet denne gren, er der et par ekstra trin krævet. Vi er nødt til at slette den gamle gren fra fjernbetjeningen og skubbe op den nye:

git push origin - slet feature-brunch
git push origin funktion-gren

Tilfældigt begået alle ændringer i mastergrenen

Så du arbejder på en ny funktion, og i din hastighed glemte du at åbne en ny filial til det. Du har allerede begået en masse filer, og nu sidder disse forpligtelser alle i mastergrenen.

Så vi kan rulle alle disse ændringer tilbage til en ny gren med følgende tre kommandoer:

Bemærk: Sørg for, at du forpligter eller stash dine ændringer først, eller at alle vil gå tabt!

git gren funktion-gren
git reset HEAD ~ --hard
git checkout-funktionsgren

Dette opretter en ny gren, derefter rulles mastergrenen tilbage til, hvor den var, før du foretog ændringer, før du til sidst tjekker din nye gren med alle dine tidligere ændringer intakte.

Glemte at tilføje en fil til den sidste forpligtelse

En anden almindelig Git-faldgruve begår for tidligt. Du gik glip af en fil, glemte at gemme den eller har brug for at foretage en mindre ændring for den sidste forpligtelse for at give mening. - Det er din ven endnu en gang.

Tilføj den mistede fil, og kør derefter den pålidelige kommando.

git tilføje savnet-fil.txt
git commit - ændre sig

På dette tidspunkt kan du enten ændre engagementsmeddelelsen eller bare gemme den for at holde den samme.

Tilføjet en forkert fil i repoen

Men hvad nu hvis du gør det modsatte? Hvad hvis du tilføjede en fil, som du ikke ønskede at begå? En rogue ENV-fil, et build-bibliotek, et billede af din hund, som du ved et uheld har gemt i den forkerte mappe? Det hele kan rettes.

Hvis alt hvad du gjorde var at fase filen, og du ikke har begået den endnu, er det så simpelt som at nulstille den iscenesatte fil:

git reset /assets/img/misty-and-pepper.jpg

Hvis du er gået så langt som at begå den ændring, behøver du ikke at bekymre dig. Du skal bare køre et ekstra trin før:

git reset - soft HEAD ~ 1
git reset /assets/img/misty-and-pepper.jpg
rm /assets/img/misty-and-pepper.jpg
git commit

Dette vil fortryde engagementet, fjerne billedet og derefter tilføje et nyt engagement på dets sted.

UPS jeg gjorde det igen

Denne kommando er til, når alt er gået galt. Når du har indsat en for mange løsninger fra Stack Overflow, og din repo er i en dårligere tilstand, end den var, da du startede. Vi har alle været der.

git reflog viser dig en liste over alle de ting, du har gjort. Derefter giver du dig mulighed for at bruge Gits magiske tidsrejser til at gå tilbage til ethvert tidspunkt i fortiden. Jeg skal bemærke, dette er en sidste udvej ting og bør ikke bruges let. For at få denne liste skal du indtaste:

git reflog

Hvert skridt, vi tog, hvert skridt, vi gjorde, Git så på os. At køre det på vores projekt giver os dette:

3ff8691 (HEAD -> feature-branch) HEAD @ {0}: Filial: omdøbt refs / heads / feature-brunch til refs / heads / feature-branch
3ff8691 (HEAD -> feature-branch) HEAD @ {2}: kasse: skifter fra master til feature-brunch
2b7e508 (master) HEAD @ {3}: reset: flyttes til HEAD ~
3ff8691 (HEAD -> feature-branch) HEAD @ {4}: commit: Tilføjer klientens logo
2b7e508 (master) HEAD @ {5}: reset: flytter til HEAD ~ 1
37a632d HEAD @ {6}: commit: Tilføjer klientens logo til projektet
2b7e508 (master) HEAD @ {7}: reset: flytter til HEAD
2b7e508 (master) HEAD @ {8}: commit (ændring): Tilføjet medvirkende info til webstedet
dfa27a2 HEAD @ {9}: reset: flytter til HEAD
dfa27a2 HEAD @ {10}: commit (ændring): Tilføjet medvirkende info til webstedet
700d0b5 HEAD @ {11}: commit: Tilføjet bidragende info til webstedet
efba795 HEAD @ {12}: commit (initial): Initial commitment

Vær opmærksom på kolonnen til venstre, da dette er indekset. Hvis du vil vende tilbage til et hvilket som helst punkt i historikken, skal du køre kommandoen nedenfor og erstatte {index} med den henvisning, f.eks. dfa27a2.

git reset HEAD @ {index}

Har du nogle egne Git-tip? Fortæl os det i kommentarerne nedenfor, jeg ville meget gerne høre dem.

Tak for at have læst! Hvis du fandt dette nyttigt, så glem ikke at efterlade nogle klapper . Del dette med dine venner og følgere! Tweet til mig på iAnkurBiswas, og lad mig vide, hvordan du kunne lide denne artikel!