Introduction
I've been requested multiple times about sharing my .gitconfig to copy my aliases.
I use git aliases for two reasons:
- To improve productivity.
- To remember interesting
gitcommands and learn from them.
My Gitconfig
These are my aliases included in my ~/.gitconfig file for your reference:
[alias]
a = add .
aliases = config --get-regexp alias
alias = ! git config --get-regexp ^alias\\. | sed -e s/^alias.// -e s/\\ /\\ $(printf \"\\043\")--\\>\\ / | column -t -s $(printf \"\\043\") | sort -k 1
ap = add . -p
addups = remote add upstream
bd = branch -d
bi = bisect
bl = branch -l
blr = branch -a
br = branch -r
ca = commit -a
cam = commit -a -m
ci = commit -m
cia = commit --author='imjoseangel <anotheremail@example.com>' -m
cm = commit
co = checkout
colast = checkout -
comments = commit -m 📒Comments
count = rev-list --count devel
db = branch -D
forgetAbout = rm --cached
formatting = commit -m 💅Formatting
fp = fetch -p
grep = grep -F
laf = fsck --lost-found
last = log -1 HEAD
latest = log -5 --pretty --oneline
ls = ls-files --others --exclude-standard -z
mend = commit --amend
nb = checkout -b
op = gc --prune=now --aggressive
pdo = push -d origin
pf = push --force-with-lease
po = push origin
pou = push --set-upstream origin
pr = pull --rebase
pror = remote prune origin
prud = pull --rebase upstream devel
prum = pull --rebase upstream main
prune = remote update --prune
ptag = push origin --tags
ra = rebase --abort
rc = rebase --continue
refactor = commit -m 👷Refactor
remotes = remote -v
renb = branch -m
rh = reset --hard
rhh = reset --hard HEAD
ri = rebase -i upstream/devel
rim = rebase -i upstream/main
rl = reflog
rp = repack -ad
s = status -s
search = rev-list --all
sh = show
short = shortlog -sn
sign = commit --amend --no-edit --signoff
st = status
stashes = stash list
tests = commit --allow empty -m ✅Tests
tuto = help tutorial
tuto2 = help tutorial-2
unstash = stash pop
vc = clean -dfx
wow = log --all --graph --decorate --oneline --simplify-by-decoration
Running git alias after adding to the .gitconfig shows the list of all the aliases as a reference list.
To get more info, just run git help <command or alias>. For instance:
git help st
'st' is aliased to 'status'
git help status
There are two aliases I find interesting for beginners:
git tuto
git tuto2
Comments and suggestions with different approaches are always welcomed.
Oldest comments (48)
I mostly just stick with these:
alias gdiff="git difftool"
alias gap="git add -p"
Everything else is longform because I prefer to be familiar with the most common commands in case i'm ever not on a computer that's mine.
Thanks @tw2113 I will add them to my list.
dev.to/austincunningham/git-log-pr...
Nice one @austincunningham Thanks!
Good timing this post!
I recreated my WSL space on my Windows 10, and I created some aliases for git and others commands.
😄🙌
Good ones @thomasbnt Thank you!!!
Well, my git alias list is not that long. It's like 8 lines which are for the most used git commands. And I don't have aliases for commands with different flags.
But that's the good thing about it, personalization rules.
Hello, how do I add my alias
Hi @motuncoded , just create a
.gitaliasfile in your home:cat ~/.gitconfig, and add your list in the[alias]section as shown in the post.Let me know if it help.
Thank you!
The only one I sometimes configure is
git sfor status, but even that I usually just type out. One thing I did alias was merging current branch to our integration branch, which lets me easily chain either the push or the push and checkout $currb after it, or waiting for the CI pipeline to start before pushing.Though I do sometimes think about aliasing
mtomerge --no-editandcatomerge --amend --no-edit, because I often forget to add the no-edit param and get annoyed by the need to quit nano.Thanks for your comments @fjones
I don't believe using aliases is a good idea. I seldom use it even in my shell, but I prefer to leave it out entirely with applications that I might not be the only one using. And Git is definitely not something of which I'm the sole user, so avoiding aliases makes it much easier to remember the full commands as they would be available for my friends and colleagues if I need to help them out, or if I'll be writing documentation on how we're doing certain processes.
In those cases I think using an alias will cause more harm than good, and so I avoid them. The extra keystrokes are not an issue for me, as I'm a slow thinker anyways, haha.
I understand @necrophcodr , You can always have them to learn new commands and git options. Thanks for sharing!
Nice, thanks for sharing.
I would add some of my aliases
Thanks for sharing you too!!
My aliases are either things I use regularly or things that I find useful on occasion and would otherwise have to look up every time. I've added explanatory comments to some of the less-obvious aliases.
push-newcan easily be rewritten to accept other remote names as arguments, andsq's default can be changed to usemainor pullinit.defaultBranchfrom the Git config instead ofmaster.I tend not to use too many short forms or have too many aliases because tab completion exists and I don't want to develop non-portable muscle memory.
Wow! I will take some from you and adding to my list of learning commands. Thanks!
I have a handful of useful git aliases that help me be more productive:
Thanks for sharing @michi