Chapters ▾ 2nd Edition

A3.3 Bilaga C: Git-kommandon - Grundläggande ögonblicksbilder

Grundläggande ögonblicksbilder

För det grundläggande arbetsflödet att köa innehåll och checka in det i din historik finns det bara några grundläggande kommandon.

git add

Kommandot git add lägger till innehåll från arbetskatalogen till köytan (staging eller “index”) för nästa incheckning. När kommandot git commit körs tittar det som standard bara på denna köyta, så git add används för att utforma hur den nästa ögonblicksbilden ska se ut.

Detta kommando är otroligt viktigt i Git och nämns eller används dussintals gånger i boken. Vi går snabbt igenom några av de mer unika användningarna.

Vi introducerar och förklarar git add i detalj i Spåra nya filer.

Vi nämner hur man använder det för att lösa sammanslagningskonflikter i Grundläggande sammanslagningskonflikter.

Vi går igenom hur man använder det för att interaktivt köa bara vissa delar av en ändrad fil i Interaktiv köläggning.

Slutligen emulerar vi det på lågnivå i Trädobjekt, så att du kan få en uppfattning om vad det gör bakom kulisserna.

git status

Kommandot git status visar de olika tillstånden för filer i din arbetskatalog och din köyta. Det visar vilka filer som är ändrade och oköade och vilka som är köade men ännu inte checkade in. I normal form visar det också några grundläggande tips om hur man flyttar filer mellan dessa lägen.

Vi tar upp status första gången i Kontrollera filstatus, både i dess grundläggande och förenklade former. Även om vi använder det genom hela boken täcks i princip allt du kan göra med kommandot git status där.

git diff

Kommandot git diff används när du vill se skillnader mellan två träd. Det kan vara skillnaden mellan din arbetsmiljö och din köyta (git diff i sig), mellan köytan och din senaste incheckning (git diff --staged), eller mellan två incheckningar (git diff master branchB).

Vi tittar först på grundläggande användning av git diff i Visa köade och oköade ändringar, där vi visar hur man ser vilka ändringar som är köade och vilka som ännu inte är det.

Vi använder det för att leta efter möjliga blankteckensproblem före incheckning med alternativet --check i Riktlinjer för incheckningar.

Vi ser hur man kontrollerar skillnaderna mellan grenar mer effektivt med syntaxen git diff A…​B i Avgöra vad som ska integreras.

Vi använder det för att filtrera bort blankteckensskillnader med -b och för att jämföra olika stadier av konfliktfiler med --theirs, --ours och --base i Avancerad sammanslagning.

Slutligen använder vi det för att jämföra submoduländringar effektivt med --submodule i Komma igång med undermoduler.

git difftool

Kommandot git difftool startar helt enkelt ett externt verktyg för att visa skillnaden mellan två träd om du vill använda något annat än det inbyggda git diff‑kommandot.

Vi nämner detta bara kort i Visa köade och oköade ändringar.

git incheckning

Kommandot git commit tar allt filinnehåll som har köats med git add, registrerar en ny permanent ögonblicksbild i databasen och flyttar sedan grenpekaren på den aktuella grenen till den.

Vi går först igenom grunderna i att checka in i Spara dina ändringar. Där visar vi också hur man använder flaggan -a för att hoppa över steget git add i dagliga arbetsflöden och hur man använder flaggan -m för att ange ett incheckningsmeddelande på kommandoraden i stället för att starta en redigerare.

I Ångra saker tar vi upp hur man använder alternativet --amend för att göra om den senaste incheckningen.

I Grenar i korthet går vi igenom i mycket större detalj vad git commit gör och varför det gör det på det sättet.

Vi tittade på hur man signerar incheckningar kryptografiskt med flaggan -S i Signera incheckningar.

Slutligen tittar vi på vad kommandot git commit gör i bakgrunden och hur det faktiskt är implementerat i Incheckningsobjekt.

git reset

Kommandot git reset används främst för att ångra saker, vilket du säkert kan gissa av verbet. Det flyttar runt HEAD‑pekaren och kan valfritt ändra index eller köytan, och kan också valfritt ändra arbetskatalogen om du använder --hard. Det sista alternativet gör att kommandot kan radera ditt arbete om det används fel, så se till att du förstår det innan du använder det.

Vi täcker först den enklaste användningen av git reset i Ta bort en köad fil, där vi använder det för att avköa en fil vi hade kört git add på.

Vi går sedan igenom det i ganska stor detalj i Nollställning förklarad, som helt ägnas åt att förklara kommandot.

Vi använder git reset --hard för att avbryta en sammanslagning i Avbryta en sammanslagning, där vi också använder git merge --abort, vilket är ett slags omslag för kommandot git reset.

git rm

Kommandot git rm används för att ta bort filer från köytan och arbetskatalogen i Git. Det liknar git add i det att det köar borttagningen av en fil inför nästa incheckning.

Vi går igenom kommandot git rm i detalj i Ta bort filer, inklusive att ta bort filer rekursivt och att bara ta bort filer från köytan men lämna dem i arbetskatalogen med --cached.

Det enda andra avvikande användningsfallet för git rm i boken är i Ta bort objekt där vi kort använder och förklarar --ignore-unmatch när vi kör git filter-branch, vilket helt enkelt gör att det inte ger fel när filen vi försöker ta bort inte finns. Detta kan vara användbart för skriptändamål.

git mv

Kommandot git mv är ett tunt bekvämlighetskommando för att flytta en fil och sedan köra git add på den nya filen och git rm på den gamla filen.

Vi nämner detta kommando bara kort i Flytta filer.

git clean

Kommandot git clean används för att ta bort oönskade filer från din arbetskatalog. Det kan till exempel innebära att ta bort temporära byggartefakter eller filer efter sammanslagningskonflikter.

Vi täcker många av alternativen och scenarierna där du kan använda kommandot clean i Städa arbetskatalogen.