# Main git commands
# Configurations
git config --global user.name "Sam Smith"
git config --global user.email sam@example.com
# New Repository
git init
# Copy local repository
git clone /path/to/repository
# Copy local repository for remote servers
git clone username@host:/path/to/repository
# Add files
git add <filename>
git add *
# Git Commits
git commit -m "Commit message"
# Commit any files added with git add command
git commit -a
# Push changes to master branch
git push origin master
# Check the status of files
git status
# Connect to remote repository
git remote add origin <server>
# Provide a list of recently configured remote repositories
git remote -v
# Create new branch then switch to it
git checkout -b <branchname>
# Switch branches
git checkout <branchname>
#List all branches in repository
git branch
# Delete the feature branch
git branch -d <branchname>
# Push selected branch to your remote repository
git push origin <branchname>
# Push all branches to remote repository
git push --all origin
# Delete a branch on the remote repository
git push origin :<branchname>
# Fetch and merge changes on remote server to certain directory
git pull
# Merge a different branch into active branch
git merge <branchname>
# View merge conflicts
git diff
git diff --base <filename>
git diff <sourcebranch> <targetbranch>
# Mark changed file
git add <filename>
# Utilise tagging to mark a certain changeset
git tag 1.0.0 <commitID>
# Get changeset ID
git log
# Push all tags to remote repository
git push --tags origin
# Undo local changes, replace changes
git checkout -- <filename>
# Drop all changes and commits
git fetch origin
git reset --hard origin/master
# Search the working directory for foo(); (example)
git grep "foo()"