Git cheat sheet per taak: commando's, herstelrecepten en npm | We.Inc
Een doorzoekbare Git cheat sheet geordend per taak: starten, opslaan, branchen, mergen, synchroniseren en deployen, plus "het ging mis"-herstelrecepten, een diagram van waar wijzigingen staan en veelgebruikte npm-commando's.
Het meeste dagelijkse Git-werk bestaat uit zes commando's: git status om wijzigingen te zien, git add om ze te stagen, git commit -m om op te slaan, git switch -c om te branchen, git pull om updates op te halen en git push om te delen. Om iets terug te draaien gebruikt u git restore voor bestanden, git reset voor lokale commits en git revert voor commits die al gepusht zijn.
Terugdraaien in één oogopslag
Wat terugdraaien
Commando
Wijzigingen in een bestand
git restore file
Staging
git restore --staged file
Laatste commit, niet gepusht
git reset --soft HEAD~1
Een gepushte commit
git revert <commit>
Doorzoek de commando's hieronder, kopieer elke regel met één klik en gebruik de recepten als er iets misgegaan is. De commando's gebruiken git switch en git restore, de duidelijkere vervangers voor de vele taken van git checkout.
Typ een woord zoals undo, branch of tag in het zoekvak.
Kopieer het commando en vul de naam van uw branch of bestand in.
Bekijk het diagram om te zien tussen welke gebieden een commando wijzigingen verplaatst.
Voer git status uit voor en na alles wat de geschiedenis herschrijft.
Commit klein en vaak; kleine commits zijn makkelijk terug te draaien en te reviewen.
Reset of force-push nooit een branch die anderen gebruiken. Gebruik in plaats daarvan revert.
Kies --force-with-lease boven --force; het weigert als iemand anders intussen gepusht heeft.
Schrijf commitberichten als wat de wijziging doet: "Boekingsformulier toevoegen", niet "wijzigingen".
Bewaar secrets vanaf de allereerste commit in omgevingsbestanden die in .gitignore staan.
Veelgestelde vragen
Wat is het verschil tussen git reset en git revert?
reset zet uw branch terug en haalt commits uit de geschiedenis; dat is prima voor lokaal werk. revert voegt een nieuwe commit toe die een oude ongedaan maakt en laat de geschiedenis intact, wat de veilige keuze is zodra een commit gepusht is.
git switch of git checkout?
Beide werken. Git 2.23 voegde git switch toe voor het wisselen van branch en git restore voor het herstellen van bestanden, en splitste zo de twee taken die git checkout vroeger deed. Ze zijn makkelijker te lezen en moeilijker verkeerd te gebruiken.
Wat doet git fetch dat git pull niet doet?
fetch downloadt nieuwe commits maar verandert niets aan uw branch. pull voert fetch uit en merget of rebaset die commits daarna in uw huidige branch.
Hoe krijg ik een kwijtgeraakte commit terug?
Voer git reflog uit. Dat toont elke positie waar uw HEAD is geweest, ook commits waar geen branch naar wijst. Zoek de gewenste en voer git switch -c rescue <sha> uit.
npm install of npm ci?
Gebruik npm install tijdens het ontwikkelen; het kan het lock-bestand bijwerken. Gebruik npm ci in builds en CI; het verwijdert node_modules en installeert precies wat het lock-bestand zegt, en faalt als package.json en het lock-bestand niet overeenkomen.
Waar uw wijzigingen staan
Git houdt vier plekken bij: uw werkmap, de staging area (ook wel de index genoemd), uw lokale repository en de remote. add verplaatst wijzigingen van de map naar staging, commit van staging naar de repository, push van uw repository naar de remote, en pull haalt de commits van de remote weer binnen.
Van commit naar een live website
Veel hosts deployen zodra u naar een branch pusht. Werk op een feature branch, push die om een preview te krijgen en merge in main om te publiceren. Tag releases zodat u snel terug kunt naar een versie waarvan u weet dat die werkt.
Oplossingen stap voor stap
Naar main gecommit in plaats van naar een branch
Maak een branch op de plek waar u bent (die houdt de commits), en zet main dan terug zodat het overeenkomt met de remote. Doe dit alleen voordat u pusht.
Een merge conflict oplossen
Git stopt en markeert de botsende regels. Pas elk bestand aan naar de versie die u wilt, verwijder de markeringen, en stage en rond dan af.
Per ongeluk een secret gepusht
Vervang eerst de sleutel: ga er na een push van uit dat hij gekopieerd is. Verwijder hem daarna uit de code en de geschiedenis, en voeg het bestand toe aan .gitignore.
Schrijft u een README voor de repository? Gebruik de
Markdown cheat sheet
Werkmap
Staging area
Lokale repository
Remote (GitHub, GitLab)
Eenmalig instellen
Naam die op uw commits komt
E-mailadres dat op uw commits komt
Nieuwe repositories beginnen op main
git pull rebaset in plaats van merge commits te maken
Een project starten
Maak van de huidige map een repository
Kopieer een remote repository naar uw computer
Koppel een lokale repository aan een remote
Toon remotes en hun URL's
Werk opslaan
Wat is gewijzigd, wat is gestaged
Eén bestand stagen
Delen van bestanden stagen, hunk voor hunk
Committen wat gestaged is
Wijzigingen die nog niet gestaged zijn
Wijzigingen die gestaged zijn voor de volgende commit
Compacte geschiedenis met getekende branches
Branchen en mergen
Een branch maken en ernaartoe gaan
Naar een bestaande branch gaan
Lokale branches tonen
Die branch in de huidige mergen
De huidige branch opnieuw afspelen bovenop main
Een gemergde branch verwijderen (-D forceert)
Eén commit naar de huidige branch kopiëren
Synchroniseren en deployen
Wijzigingen van de remote downloaden zonder uw bestanden aan te raken
Fetchen en daarna mergen of rebasen in de huidige branch
Een nieuwe branch pushen en onthouden waar die naartoe gaat
De huidige branch pushen
Een release markeren
Die tag pushen (tags worden standaard niet gepusht)
Werk parkeren voor later
Niet-gecommitte wijzigingen opzijzetten
Bekijken wat er in de stash zit
De laatste stash terughalen en uit de lijst verwijderen
Het ging mis: recepten
Niet-gestagede wijzigingen in een bestand weggooien (niet terug te draaien)
Een bestand unstagen maar de wijzigingen houden
Het bericht van de laatste commit verbeteren (of gestagede bestanden toevoegen) vóór het pushen
De laatste commit ongedaan maken, de wijzigingen gestaged houden
De laatste commit en de wijzigingen verwijderen (lokaal, niet gepusht)
Een gepushte commit ongedaan maken met een nieuwe commit; veilig op gedeelde branches
Een commit terugvinden die kwijt is na een reset of rebase, en daarna git switch -c rescue <sha>
Een merge met conflicten afbreken
Een mislukte rebase afbreken
Per ongeluk naar main gecommit: zet het werk op een branch en reset dan main
Een remote branch alleen overschrijven als niemand gepusht heeft sinds uw laatste fetch
Bekijken en daarna niet-gevolgde bestanden en mappen verwijderen
package.json met standaardwaarden aanmaken
Schone installatie precies volgens het lock-bestand (gebruik in CI)
Een dependency toevoegen
Een dependency alleen voor development toevoegen
Een dependency verwijderen
Packages tonen waarvan een nieuwere versie bestaat
Bekende kwetsbaarheden melden
Tonen welke versies van een package geïnstalleerd zijn en waarom
Nieuwste gepubliceerde versie van een package
Het commando van een package uitvoeren zonder het te installeren
Commando
Wat het doet
Kopiëren
Waar wijzigingen staan
git pull haalt de commits van de remote weer binnen.