dotfiles/.gitconfig

116 lines
2.9 KiB
INI
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[alias]
## 'New' commands.
create-initial-commit = !git commit -m 'Initial commit' --allow-empty
hard-reset = !git reset --hard $(git upstream)/$(git current-branch)
# Assume the specified file is unchanged to stop changes
# being seen by Git
assume = update-index --assume-unchanged
# No longer assume a specified file remains unchanged
unassume = update-index --no-assume-unchanged
# List all files that are assumed to be unchanged
assumed = !git ls-files -v | grep '^[hsmrck?]' | cut -c 3-
work-in-progress = commit -a -m 'WIP'
# Create a new branch.
create-new-branch = checkout -b
# Add a commit that fixes another (to be used with `rebase -i`).
fixup = commit --fixup
noff = merge --no-ff
staged = diff --staged
undo = reset --hard
unstage = reset HEAD --
wipe = clean -fd
word-diff = diff --word-diff
# Print the name of the current branch.
current-branch = symbolic-ref --short HEAD
# Print the name of the current upstream tracking branch.
upstream = !git config --get branch.$(git current-branch).remote \
|| echo origin
# Checkout the latest develop branch and update it.
pull-develop = !git checkout develop && git pull --rebase
# Checkout the latest master branch and update it.
pull-master = !git checkout master && git pull --rebase
# Update the develop, master and current branches.
pull-develop-master-current-branch = !BRANCH=$(git current-branch) && \
git fetch --all && git pull-develop && git pull-master && \
git checkout $BRANCH && git pull
push-current-branch = !git push -u $(git upstream) $(git current-branch)
rebase-against-master = !git fetch --all \
&& git rebase $(git upstream)/master
rebase-against-develop = !git fetch --all \
&& git rebase $(git upstream)/master
## Shorterned 'New' commands.
cic = !git create-initial-commit
red = !git rebase-against-develop
rem = !git rebase-against-master
w = !git word-diff
wip = !git work-in-progress
# Shorterned existing commands.
aa = add --all
ap = add --patch
b = branch -v
bv = branch -vv
bd = branch -d
c = commit -v
ca = commit --amend
caa = commit --amend -C HEAD
cl = clone --recursive
co = checkout
cop = checkout -p
f = fetch
fa = fetch --all
g = grep --break --heading --line-number
l = !git log --oneline --graph --decorate -20 || true
nb = !git create-new-branch
s = status --short --branch
[branch]
autosetupmerge = true
autosetuprebase = always
[color]
ui = true
[core]
# A global .gitignore file.
excludesFile = ~/.gitignore-global
[diff]
tool = vimdiff
[fetch]
# Always prune when fetching (and pulling).
prune = true
[gitsh]
nogreeting = true
[grep]
# Show the line numbers in the output.
lineNumber = true
[help]
autocorrect = 1
# Open Git help pages in a browser as HTML.
format = web
[include]
path = ~/.gitconfig-local
[rebase]
autosquash = true
autostash = true
[rerere]
# Store and re-use manual conflict resolution changes.
enabled = true