dotfiles/.gitconfig

119 lines
3 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 the current branch upstream to origin using the same branch
# name for the remote branch.
upstream-current-branch = !git push --set-upstream origin \
$(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