Git Cheat Sheet
Create
Clone and Existing Repository
Create a new local repository
Clone and Existing Repository
Clone and Existing Repository
Local Changes
Changed files in your working directory
Changes to tracked files
Add all current changes to the next commit
Add some changes in <file> to the next commit
Commit all local changes in tracked files
Commit previously staged changes
Add some changes in to the next commit
Change the last commit Don‘t amend published commits!
Branching & Tags
List all existing branches
Switch HEAD branch
Create a new branch based on your current HEAD
Create a new tracking branch based on a remote branch
Delete a local branch
Mark the current commit with a tag
Update & Publish
List all currently configured remotes
Show information about a remote
Add new remote repository, named <remote>
Download all changes from <remote>, but don‘t integrate into HEAD
Download changes and directly merge/integrate into HEAD
Publish local changes on a remote
Delete a branch on the remote
Publish your tags
Merge & Rebase
Merge <branch> into your current HEAD
Rebase your current HEAD onto <branch> Don‘t rebase published commits!
Abort a rebase
Continue a rebase after resolving conflicts
Use your configured merge tool to solve conflicts
Use your editor to manually solve conflicts
After resolving mark file as resolved
Undo
Discard all local changes in your working directory
Discard local changes in a specific file
Revert a commit (by producing a new commit with contrary changes)
Reset your HEAD pointer to a previous commit & discard all changes since then
Reset your HEAD pointer to a previous commit & preserve all changes as unstaged changes
Reset your HEAD pointer to a previous commit & preserve uncommitted local changes
Git ignore patronen
**/logs
logs/debug.log
logs/monday/foo.bar
build/logs/debug.log
Je kunt een patroon vooraf laten gaan door een dubbele asterisk zodat overeenkomsten worden gezocht met mappen in de gehele repository.
**/logs/debug.log
logs/debug.log
build/logs/debug.log
maar niet
logs/build/debug.log
Je kunt ook een dubbele asterisk gebruiken om bestanden te matchen op basis van hun naam en de naam van hun bovenliggende map.
*.log
debug.log
foo.log
.log
logs/debug.log
Een asterisk is een jokerteken dat overeenkomt met nul of meer tekens.
*.log
!important.log
debug.log
trace.log
maar niet
important.log
logs/important.log
Door vooraan een uitroepteken te plaatsen, zal het patroon het negeren. Als een bestand overeenkomt met een patroon, maar ook met een ontkenningspatroon dat later in het bestand is gedefinieerd, wordt het niet genegeerd.
*.log
!important/*.log
trace.*
debug.log
important/trace.log
maar niet
important/debug.log
Patronen die ná een ontkenningspatroon zijn gedefinieerd, zullen alle eerder ontkende bestanden opnieuw negeren.
/debug.log
debug.log
maar niet
logs/debug.log
Door vooraan een slash toe te voegen, worden alleen bestanden in de hoofdmap van de repository gezocht.
debug.log
debug.log
logs/debug.log
Patronen komen standaard overeen met bestanden in een map
debug?.log
debug0.log
debugg.log
maar niet
debug10.log
Een vraagteken komt overeen met precies één karakter.
debug[0-9].log
debug0.log
debug1.log
maar niet
debug10.log
Er kunnen ook blokhaken worden gebruikt om een enkel teken uit een bepaalde reeks te matchen.
debug[01].log
debug0.log
debug1.log
maar niet
debug2.log
debug01.log
Blokhaken komen overeen met één teken uit de opgegeven set.
debug[!01].log
debug2.log
maar niet
debug0.log
debug1.log
debug01.log
Een uitroepteken kan worden gebruikt voor overeenkomsten met elk teken, behalve één uit de opgegeven set.
debug[a-z].log
debuga.log
debugb.log
maar niet
debug1.log
Reeksen kunnen numeriek of alfabetisch zijn.
Logboeken
logs
logs/debug.log
logs/latest/foo.bar
build/logs
build/logs/debug.log
Als je geen slash voor de naam plaatst, zoekt het patroon zowel bestanden als de inhoud van mappen met die naam. In het voorbeeld links worden zowel mappen als bestanden met de naam logs genegeerd.
logs/
logs/debug.log
logs/latest/foo.bar
build/logs/foo.bar
build/logs/latest/debug.log
Het toevoegen van een slash vooraan geeft aan dat het patroon een map is. De volledige inhoud van elke map in de repository die overeenkomt met die naam — inclusief alle bestanden en submappen — wordt genegeerd.
logs/
!logs/important.log
logs/debug.log
logs/important.log
Wacht even! Zou logs/important.log
niet moeten worden genegeerd in het voorbeeld links?
Nee hoor! Vanwege een prestatiegerelateerde eigenaardigheid in Git kun je een bestand dat wordt genegeerd niet negeren vanwege een patroon dat overeenkomt met een map
logs/**/debug.log
logs/debug.log
logs/monday/debug.log
logs/monday/pm/debug.log
Een dubbele asterisk komt overeen met nul of meer mappen.
logs/*day/debug.log
logs/monday/debug.log
logs/tuesday/debug.log
maar niet
logs/latest/debug.log
Jokertekens kunnen ook worden gebruikt in mapnamen.
logs/debug.log
logs/debug.log
maar niet
debug.log
build/logs/debug.log
Patronen die een bestand in een bepaalde map opgeven, zijn relatief ten opzichte van de hoofdmap van de repository. (Je kunt desgewenst een slash vooraan plaatsen, maar die doet niets bijzonders.)
Last updated