Configuration
Edit via editor
# <project\.git\config
git config --edit
# C:\Users\%username%\.gitconfig
git config --global --edit
# C:\Program Files\Git\etc\gitconfig
git config --system --edit
Alias
Edit ~/.gitconfig
($env:userprofile.gitconfig
on windows) or use e.g., git config --global alias.st 'status'
[alias]
st = status
ci = commit
co = checkout
br = branch
unstage = reset HEAD --
last = log -1 HEAD --oneline
Branches
Check out a forked remote branch on GitHub
Requires the GitHub CLI to be installed
# List open pull requests
gh pr list
# Check out locally
gh pr checkout <int>
Delete local and remote branch
git branch -d feature/login
git push origin --delete feature/login
Delete local references to remote branches that don't exist anymore
git remote prune origin
Update the local list of remote branches
git remote update origin --prune
Automatically set remote branches on push
git config --global --add --bool push.autoSetupRemote true
Remotes
Show remotes
git remote -v
Set remote URL
git remote set-url origin <url>
Merging
Abort a merge process
git merge --abort
Tags
Checkout Git Tag
git checkout tags/<tag> -b <branch>
Delete single tag
# delete remotely
git push --delete origin v2.0.1
# delete locally
git tag --delete v2.0.1
Delete all tags
# First delete remote tags
git tag -l | xargs git push --delete origin
# Then delete local tags
git tag | xargs git tag -d
Misc
Push an existing repository
git remote add origin https://github.com/gittower/example.git
git push -u origin --all
Deleting the entire commit history
# Checkout
git checkout --orphan latest_branch
# Add all files
git add -A
# Commit changes
git commit -am "initial commit"
# Delete branch
git branch -D main
# Rename current branch
git branch -m main
# Force update repository
git push -f origin main