Quick reference
Other cheatsheets
Glossary
working directory/ workspace: the actual files you see and edit
staging area: Place files go after
git add
and beforegit commit
hash: unique reference of any commit or state
branch: One line of work. Different branches can exist at the same time and split/merge.
HEAD: Pointer to the most recent commit on the current branch.
remote: Roughly, another server that holds .git.
origin: Default name for a remote repository.
master: Default name for main branch on Git. Depending on the configuration and service, the default branch is sometimes main. In this lesson we configure Git so that the default branch is called main to be more consistent with GitHub and GitLab.
main: Default name for main branch on GitLab and GitHub. In this lesson we configure Git so that the default branch is called main to be more consistent with GitHub and GitLab.
Commands we use
Setup:
git config
: edit configuration optionsgit init
: create new repository
See our status:
git status
: see status of files - use often!git log
: see history of commits and their messages, newest firstgit graph
: see a detailed graph of commits. Create this command withgit config --global alias.graph "log --all --graph --decorate --oneline"
git diff
: show difference between working directory and last commitgit diff --staged
: show difference between staging area and last commitgit show <commit>
: inspect individual commits
General work:
git add
:Add a new file
Add a file to staging
git commit
: record a version, add it to current branchgit commit --amend
: amend our last commitgit branch
: show which branch we’re ongit branch <name>
: create a new branch called “name”git restore <file>
: restore last committed/staged version of <file>, losing unstaged changesgit switch --create <branch-name>
: create a new branch and switch to itgit revert abc123
: create a new commit which reverts commit abc123git reset --soft abc123
: remove all commits after abc123, but keep their modifications as staged changesgit reset --hard abc123
: remove all commits after abc123, permanently throwing away their changesgit merge <branch-name>
: merge branch <branch-name> into current branchgit grep
: search for patterns in tracked filesgit annotate
: find out when a specific line got introduced and by whomgit bisect
: find a commit which broke some functionality