git

Git is a distributed revision control and source code management and was initially designed and developed by Linus Torvalds for Linux kernel development. Git is a free software distributed under the terms of the GNU General Public License version 2

Some examples:
# Sets the name globally for your commits
git config --global user.name "[your name]"

# Sets the email globally for your commits
git config --global user.email "[your email]"
# Initialize a new local repository
git init [repository name]

# Clone a remote repository
git clone [url]
# List new/modified files to be committed
git status

# List file differences not yet staged
git diff

# Add a file
git add [filename | *]

# Remove files which have been deleted, update what was modified and add new files
git add -u

# Commit a file (records snapshot permanently in version history)
git commit -m "some commit message"

# Push all commit changes
git push

# Pull all changes
git pull
# Show all remote/local branches
git branch -a

# Show all remote branches
git branch -r

# Show unpushed commits that are local
git log --branches --not --remotes

# Delete a local branch
git branch -d local_branch

# Remove this branch on remote
git push origin :local_branch

# Remove a remote branch that is not local
git push origin --delete remote_branch

# Make develop identical to master
git branch -f develop master

# Make develop identical to master, if you are already on develop branch
git reset —hard develop master

# Merge master into develop
git checkout develop
git fetch origin
git merge origin/master

# --prune after fetching, remove any remote-tracking branches which no longer exist on the remote
git fetch -p

# push a new local branch (from local to remote i.e. set upstream)
git push >& git.tmp ; cat git.tmp | sed -n 4p | `sed 's/^[[:space:]]*//g; s/[[:space:]]*$//'` && rm git.tmp

# Squash all commits on master branch
git checkout master
git checkout --orphan feature/squashed
git add -A && git commit -am "Squash all commits and start fresh"
git branch -D master
git branch -m master
git push -f origin master