Git-kommandon fusklapp

Nästa

Git har omkring 150 underkommandon, och flera av dem ser farligt lika ut – reset mot restore, checkout mot switch, rm mot restore --staged. Den här fusklappen grupperar kommandona du faktiskt skriver efter situation: dagligt arbetsflöde, grenar, ångra misstag och stash. Välj gruppen och kopiera blocket.

Så använder du fusklappen

  1. 1

    Välj ett ämne

    Dagligt, grenar, ångra eller stash – var och en hör ihop med ett eget tankesätt.

  2. 2

    Skumma blocket

    Varje rad är ett komplett, fungerande kommando; inga platshållare inom vinkelparenteser om det inte uttryckligen anges.

  3. 3

    Kopiera den du behöver

    Klistra in i din terminal, justera grennamnet eller commit-SHA:n och kör.

Varför förvirrar kommandona fortfarande vana användare

Gits porslin (porcelain) har vuxit fram bit för bit. checkout överlastades med både att “byta gren” och att “återställa en fil”; reset ligger någonstans mellan att “kasta bort arbete” och att “flytta grenpekaren”. Sedan Git 2.23 finns tydligare verb:

Gamla Nya (tydligare)
git checkout branch git switch branch
git checkout -b new git switch -c new
git checkout -- file git restore file
git checkout --staged file git restore --staged file

Den säkra ångra-stegen

  1. Återställ en fil: git restore path/to/file (ostagead) eller git restore --staged path/to/file (stagead men ännu inte committad).
  2. Ångra den senaste committen men behåll ändringarna: git reset --soft HEAD~1.
  3. Ångra den senaste committen och kasta ändringarna: git reset --hard HEAD~1 (destruktivt; kontrollera att du inte har icke-committat arbete).
  4. Återställ en delad commit: git revert <sha> – skapar en ny commit som upphäver den gamla; säkert på redan pushad historik.

Stash-etikett

  • Stasha alltid med ett meddelande: git stash push -m "wip: kopplar in API".
  • Kolla dina stashar med git stash list innan du poppar, namnlösa stashar hopar sig snabbt.
  • git stash pop tillämpar och tar bort; git stash apply tillämpar och behåller.

Återställning

Tappade du en commit efter en hård reset? Den finns förmodligen kvar i reflogen. Kör git reflog för att se alla HEAD-flyttar de senaste 90 dagarna och git reset --hard <sha> för att gå tillbaka till ett gott tillstånd.

Vanliga frågor

Från och med Git 2.23 (augusti 2019) delade projektet upp det överlastade kommandot checkout i två. switch byter gren, restore återställer filer. Båda finns kvar för bakåtkompatibilitet, men är lättare att läsa när du senare går tillbaka i din shell-historik.

reset flyttar grenpekaren (och eventuellt även arbetskatalogen). revert skapar en ny commit som ångrar en tidigare – säkert på en delad gren. checkout / restore ändrar filer i arbetskatalogen utan att skriva om historiken.

Använd git revert <sha> för att lägga till en kompenserande commit och pusha just den. Undvik kombinationen git reset --hard + git push --force på delade grenar, om inte teamet uttryckligen kommit överens om det.

Kommandona är statisk text som renderas på sidan. Det ämne du väljer skickas till servern bara för att visa rätt kommandon, och följer med i sidlänken när du rör dig mellan de två stegen. Det sparas eller loggas inte.

Relaterade verktyg

Verktyget finns på andra språk