Git-commando's spiekbriefje

Volgende

Git heeft zo’n 150 subcommando’s en een aantal daarvan lijken gevaarlijk veel op elkaar – reset versus restore, checkout versus switch, rm versus restore --staged. Dit spiekbriefje groepeert de commando’s die je echt typt per situatie: dagelijkse werkstroom, branches, fouten ongedaan maken en stashen. Kies de groep en kopieer het blok.

Hoe gebruik je het spiekbriefje

  1. 1

    Kies een onderwerp

    Dagelijks, branches, ongedaan maken of stash, elk hoort bij een andere manier van denken.

  2. 2

    Loop het blok door

    Elke regel is een volledig, werkend commando; er staan geen plaatshouders tussen punthaken, tenzij dat expliciet is aangegeven.

  3. 3

    Kopieer wat je nodig hebt

    Plak het in je terminal, pas de branchnaam of commit-SHA aan en voer het uit.

Waarom commando’s ervaren gebruikers nog steeds in de war brengen

De porcelain-laag van Git is stukje bij beetje gegroeid. checkout was overladen met zowel ‘van branch wisselen’ als ‘een bestand herstellen’; reset zit ergens tussen ‘werk weggooien’ en ‘de branch-pointer verplaatsen’. Sinds Git 2.23 zijn er duidelijkere werkwoorden:

Oude Nieuwe (helderder)
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

De veilige ladder om iets ongedaan te maken

  1. Eén bestand herstellen: git restore path/to/file (niet gestaged) of git restore --staged path/to/file (wel gestaged, maar nog niet gecommit).
  2. De laatste commit ongedaan maken, maar de wijzigingen behouden: git reset --soft HEAD~1.
  3. De laatste commit ongedaan maken en de wijzigingen weggooien: git reset --hard HEAD~1 (destructief; controleer of je geen niet-gecommit werk hebt).
  4. Een gedeelde commit terugdraaien: git revert <sha> – maakt een nieuwe commit die de oude tenietdoet; veilig op reeds gepushte historie.

Stash-etiquette

  • Stash altijd met een bericht: git stash push -m "wip: API koppelen".
  • Bekijk je stashes met git stash list voordat je popt, naamloze stashes stapelen zich snel op.
  • git stash pop past toe en verwijdert; git stash apply past toe en behoudt.

Herstel

Een commit kwijt na een hard reset? Die zit waarschijnlijk nog in de reflog. Voer git reflog uit om alle HEAD-verplaatsingen van de afgelopen 90 dagen te zien en git reset --hard <sha> om terug te gaan naar een goede toestand.

Veelgestelde vragen

Sinds Git 2.23 (augustus 2019) heeft het project het overladen checkout-commando in tweeën gesplitst. switch wisselt van branch, restore herstelt bestanden. Beide bestaan nog voor achterwaartse compatibiliteit, maar zijn makkelijker te lezen wanneer je later je shell-historie terugkijkt.

reset verplaatst de branch-pointer (en optioneel ook de working tree). revert maakt een nieuwe commit die een eerdere ongedaan maakt – veilig op een gedeelde branch. checkout / restore wijzigen bestanden in de working tree zonder de historie te herschrijven.

Gebruik git revert <sha> om een compenserende commit toe te voegen en push die. Vermijd de combinatie git reset --hard + git push --force op gedeelde branches, tenzij het team dat uitdrukkelijk heeft afgesproken.

De commando’s zijn statische tekst die in de pagina wordt weergegeven. Het onderwerp dat je kiest, wordt alleen naar de server gestuurd om de bijbehorende commando’s te tonen, en staat in de paginalink wanneer je tussen de twee stappen navigeert. Het wordt niet opgeslagen of gelogd.

Gerelateerde tools

Tool beschikbaar in andere talen