% git # Set global git user name git config --global user.name # Set global git user email git config --global user.email # Initializes a git repository git init # Clone a git repository git clone -b # View all available remote for a git repository git remote --verbose # Adds a remote for a git repository git remote add # Renames a remote for a git repository git remote rename # Remove a remote for a git repository git remote remove # Checkout to branch # Change branch git checkout # Displays the current status of a git repository git status # Displays the changes made to a file git diff # Stages a changed file for commit git add # Stages all changed files for commit git add . # Saves the changes to a file in a commit git commit -m # Pushes committed changes to remote repository git push -u # Pushes changes to a remote repository overwriting another branch git push : # Overwrites remote branch with local branch changes git push -f # Pulls changes to a remote repo to the local repo git pull --ff-only # Merges changes on one branch into current branch git merge # Abort the current conflict resolution process, and try to reconstruct the pre-merge state. git merge --abort # Displays log of commits for a repo git log # Displays formatted log of commits for a repo git log --all --decorate --oneline --graph # Clear everything git clean -dxf # Sign all commits in a branch based on master git rebase master -S -f # See all open pull requests of a user on Github navi fn url::open 'https://github.com/pulls?&q=author:+is:open+is:pr' # Checkout a branch from a fork git fetch origin pull//head:pr/ \ && git checkout pr/ # Add a new module git submodule add [] # Update module git submodule update --init # Update module without init git submodule update # Pull all submodules git submodule foreach git pull origin master # Update all submodules git submodule update --init --recursive $ branch: git branch | awk '{print $NF}'