10 avancerade git-tekniker - KDnuggets

10 avancerade git-tekniker – KDnuggets

Källnod: 3083811

10 avancerade git-tekniker
Bild från författaren
 

Har du någonsin undrat vad du kan göra för att se ut som ett proffs framför din chef när du använder Git? I det här inlägget kommer vi att lära oss om 10 avancerade Git-tekniker och genvägar som kommer att göra dig mer effektiv vid versionering, underhåll och delning av kod.

Du känner förmodligen redan till grunderna för att begå, trycka, dra och förgrena sig med Git. Men det finns många mindre kända kommandon och funktioner som kan höja dina färdigheter. Efter att ha läst detta kommer du att ha några smarta trick i rockärmen för att imponera på dina medarbetare med din Git-färdighet.

Du har lagt till och lagt till filerna på det här sättet flera gånger, men vad händer om jag säger att det kan göras på en rad med flaggan "-am"? 

$ git add .
$ git commit -m "new project"

 

Prova det här istället, och det kommer att lägga till filändringarna och skapa commit med hjälp av meddelandet. 

$ git commit -am "new project"

 

[master 17d7675] new project
4 files changed, 2 insertions(+), 1 deletion(-)

 

Du kan byta namn på ditt nuvarande commit-meddelande med "–ändra"-flaggan och skriva det nya meddelandet. Detta hjälper dig med oavsiktliga meddelanden.

$ git commit --amend -m "Love"

 

[master 7b7f891] Love
Date: Mon Jan 22 17:57:58 2024 +0500
4 files changed, 2 insertions(+), 1 deletion(-)

 

Du kan inkludera ytterligare ändringar av den aktuella commit innan du skickar den till fjärrförvaret. För att göra det måste du lägga till filändringarna och sedan commit använda flaggan `–ändra`. För att behålla det tidigare commit-meddelandet, använd helt enkelt "–no-edit"-flaggan.

$ git add . 
$ git commit --amend --no-edit

 

[master f425059] Love
Date: Mon Jan 22 17:57:58 2024 +0500
6 files changed, 2 insertions(+), 34 deletions(-)

Om du vill driva en lokal commit och åsidosätta fjärrhistoriken utan att ta itu med att lösa problem, kan du använda flaggan `–force`. Det är dock viktigt att notera att användning av kraftflaggan inte rekommenderas och endast bör användas när du är helt säker på vad du gör. Tänk på att användningen av kraftflaggan kommer att skriva om fjärrhistoriken.

$ git push origin master --force

 

Enumerating objects: 7, done.
Counting objects: 100% (7/7), done.
Delta compression using up to 16 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 357 bytes | 357.00 KiB/s, done.
Total 4 (delta 2), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
To https://github.com/kingabzpro/VSCode-DataCamp.git
8f184d5..f425059  master -> master

För att ångra en commit i Git kan du använda kommandot `revert`. Detta kommando tar dock inte bort några commits. Istället skapar den en ny commit som ångrar ändringarna som gjorts av den ursprungliga commit.

Vi kommer att använda `loggen` med `–oneline`-flaggan för att visa historiken i en kortare form. 

$ git log --oneline

 

f425059 (HEAD -> master, origin/master) Love
8f184d5 first commit

 

För att återgå till en tidigare commit använder vi kommandot `git revert` följt av commit ID. Detta skapar en ny commit med ändringarna från den tidigare commiten.

$ git revert 8f184d5

Vill du öka din produktivitet på GitHub? Med GitHub Code Spaces kan du nu redigera och köra din kod direkt i din webbläsare. 

För att komma åt den här funktionen, navigera helt enkelt till ditt favoritförråd, tryck på punkttangenten (“.”) på ditt tangentbord, och det kommer att omdirigera dig till VSCode UI.

 

10 avancerade git-tekniker
Bild från författaren
 

Du kan göra ändringar i koden och skicka dem till ditt fjärrlager. Men om du vill köra koden i terminalen måste du köra Codespace i molnet. Gratisversionen erbjuder ett utmärkt alternativ för att köra din Python-kod i din webbläsare. Är inte det fantastiskt? Jag fick nyss reda på det idag.

 

10 avancerade git-tekniker
Bild från författaren

När du arbetar med ett projekt kan du lägga till filer i ett uppsättningsområde och sedan commitera dem för att spara dina nuvarande framsteg. Det finns dock ett annat sätt att enkelt spara ditt arbete genom att använda kommandot `stash`. När du använder "stash", sparar du dina aktuella framsteg utan att lägga till det i uppställningsområdet eller begå det. Detta gör att du kan spara dina framsteg och återställa dem när du behöver.

Vi kommer att spara våra nuvarande framsteg genom att ange ett namn och gömma det. 

$ git stash save new-idea

 

Saved working directory and index state On master: new-idea

 

Du kan se din stashlista och notera motsvarande index för att hämta den.

$ git stash list

 

stash@{0}: On master: new-idea

 

Vårt arkiv med "nya idéer" sparas i index 0. För att hämta det, använd det här kommandot:

$ git stash apply 0

 

On branch master
Your branch is up to date with 'origin/master'.

Du har möjlighet att byta namn på ditt standardgrennamn till något mer lämpligt. I det här fallet kommer vi att byta namn på "master" till "main". 

$ git branch -M main

 

10 avancerade git-tekniker
 

Du kan verifiera ändringarna med följande kommando: 

$ git status

 

On branch main
Your branch is up to date with 'origin/master'.

Om du vill se en detaljerad historik över alla commits som gjorts i det aktuella arkivet, kan du använda kommandot `git log`. Utgången kan dock vara svår att läsa. För att göra det mer läsbart kan du använda flaggorna `graf`, `dekorera` och `oneline`. Detta kommer att visa ändringarna som gjorts i flera grenar och hur de sammanfogas.

$ git log --graph --decorate --oneline

 

10 avancerade git-tekniker

Vid flera tillfällen har jag bytt till en ny filial och glömt namnet på den tidigare filialen. Följaktligen var jag tvungen att använda kommandot `git branch -a` för att se listan med filialnamn. Det finns dock ett enklare sätt att återgå till den ursprungliga grenen genom att använda bindestrecket "-" efter kommandot `git checkout`.

Vi kommer först att skapa den nya Git-grenen "neo".

$ git branch neo

 

Vi kommer att byta till "neo"-grenen.

$ git checkout neo

 

Switched to branch 'neo'

 

För att gå tillbaka till den ursprungliga grenen använder vi följande kommando:

$ git checkout -

 

Switched to branch 'main'

Vi har lärt oss att åsidosätta fjärrförvaret. Låt oss lära oss hur man åsidosätter det lokala förvaret med hjälp av fjärrförvaret.

Vi kommer att använda kommandot "hämta" för att hämta de senaste ändringarna från fjärrförvaret. 

$ git fetch origin

 

Sedan kommer vi att använda "reset"-kommandot med "hard"-flaggan för att åsidosätta alla lokala ändringar med fjärrversionen. Observera att detta försvinner permanent alla lokala ändringar.

$ git reset --hard origin/master

 

HEAD is now at f425059 Love

 

Om det fortfarande finns ospårade filer kan de tas bort med följande kommando:

$ git clean -df

Jag blev inspirerad att skriva den här artikeln efter att ha sett en YouTube-video av eldskepp. Jag beundrar skaparen för hans förmåga att förklara komplexa ämnen på ett enkelt sätt. Genom att följa hans metod har jag lärt mig mycket om Git-funktioner.

I den här artikeln har vi täckt avancerade Git-tekniker som är avgörande för datavetare och mjukvaruingenjörer som arbetar med ett samarbetsdataprojekt. Att känna till dessa tekniker kan hjälpa dig att undvika olyckor och lösa problem mycket snabbare.

Jag hoppas att du tyckte att den här bloggen var användbar. Vänligen meddela mig om du vill läsa fler inlägg med information i bytestorlek om vanliga verktyg inom datavetenskapsvärlden.
 
 

Abid Ali Awan (@1abidaliawan) är en certifierad datavetare som älskar att bygga modeller för maskininlärning. För närvarande fokuserar han på att skapa innehåll och skriva tekniska bloggar om maskininlärning och datavetenskap. Abid har en magisterexamen i Technology Management och en kandidatexamen i telekommunikationsteknik. Hans vision är att bygga en AI-produkt med hjälp av ett grafiskt neuralt nätverk för studenter som kämpar med psykisk ohälsa.

Tidsstämpel:

Mer från KDnuggets