Taken from Git Pro and StackOverflow
Stages a file
Creates a checksum for staged files
Short status flag to see changes in a more compact way
Downloads commits, objects and refs from another repository. It fetches branches and tags from one or more repositories.
git fetch
+ git merge
Software as a Service. Hosts your remote repository.
Git takes snapshots of changes instead of noting changes over time.
Meaning it is impossible to change the contents of any file/directory without Git knowing
modified, staged, commited
lightweight and annotated
Most people use this functionality to mark release points i.e. v1.0.0
Branch that doesn't change: pointer to a specific commit (best practise: temporary tags)
Stored as full objects in the Git database
Diverge from the main line of development and continue to do work without messing with that main line.
Long running and topic branches.
Branches are pointers that point to a commit. They are cheap to create and destroy.
There is a special pointer called HEAD
Because of uncommited changes that conflict with the branch you're checking out.
Git resets your working directory to mimic your last commit on the current branch.
Pauses the merging proces to let the user resolve the conflict
Mark a modified file in its current version to go inot your next commit snapshot
AKA index