Introduction
I've been requested multiple times about sharing my .gitconfig to copy my aliases.
I use git aliases for two reasons:
To...
For further actions, you may consider blocking this person and/or reporting abuse
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-new
can easily be rewritten to accept other remote names as arguments, andsq
's default can be changed to usemain
or pullinit.defaultBranch
from 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!
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!!!
Great list! Will definitely add a few of these.
A few more that I like:
Thanks for sharing @ehaynes99 ! I will take note of yours too.
wow… @tpenguinltg ’s stuff - that’s on a different level entirely (: can’t wait to try some of those!
i use many of the aliases shared by others regularly. one alias in particular saves me a ton of time daily:
development
/master
/etcdevelopment
), then lastlyIt’s not strictly a git alias, i know, though you could prob make that work 🤷♂️ never tried 😉 useful nonetheless IMH
I use it anytime i’m done with a feature and need push and open a PR on main.
great post. inspiring stuff!
Did you know you can shorten your
gmd
alias to justgit pull origin development
(assumingorigin
is the correct remote)? It's not exactly the same since it won't update your localdevelopment
branch, but it will do the important part and make your current branch up to date with the remotedevelopment
.general ones:
And some specific commit messages (conventional commit is a thing):
Thanks for sharing @vikmstr !!!
using zsh
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.
The only one I sometimes configure is
git s
for 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
m
tomerge --no-edit
andca
tomerge --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
Nice, thanks for sharing.
I would add some of my aliases
Thanks for sharing you too!!
Great aliases you've got!
I have just one git alias at the moment and that is:
This comes very handy especially if you contribute to open source projects frequently.
Thanks @thisisobate ! Added to my list
Also, for work specifically, my company works on GitHub, and I have a bash script to easily create a new PR from the current branch.
I name it
git-new-pr
, and add it to my$PATH
. Then, I can callgit new-pr
, and it'll automatically open up a page for a new PR in my browser.This script is for macOS. So, the last line opens the URL in the default browser. If using Linux, this could be
xdg-open $PR_URL
. Also, a specific browser could be specified.Most people would just use the GitHub cli for this, but I've never bothered installing it, and this works really well.
Thanks for sharing @goodevilgenius !!
I didn't read all that were postet but here are mine that I love the most.
Most used by me is glogl (git log last) and glog -100 (git log last 100)
It creates an output like:
Thanks @loebkes for sharing. Really cool one.
The thing that confuses is that alias set is very uneven in sense of pressings. If you press something on keyboard, you anyway press some sequences, and all git commands start with "git " - already 4 presses... After it, difference, for example, between "git br" = "git branch -r" and "git b -r" where "b" is already aliased as "branch" is nearly void, compared with any other difference. This suggests the alias set is accrued historically without substantial reconcerning.
Alias "db" is dangerous. I prefer to write such actions only explicitly. Same for "op": it's normal to refer to something done a few days ago, and for "vc". (BTW do you use IDE? Something like "git clean -dfx -e .vscode" would be better.)
What is use case for "search"?
"last" could be extended with "--stat" to show changes, because anyway only a single commit is printed.
OTOH, it clearly exposes some manners and developing approaches - as presence of "main" and "devel" branches. For me, it showed some features I was unaware or forgot them due to standing out of usual habits... thanks for this.
Formatting was broken - e.g. what is "git alias" is unparseable (seems the website markdown was active). If it allows editing the post, please reconsider.
To compare, my typical set (with comments):
Maybe more specific to my manner, but it is typical to cache only some changes among ones in file (others could be for later commits, not committed as debug, etc.) - just interactive mode is not enough. Git's recalculating of chunk line count works well enough.
In rebase, sometimes it is needed to see full patch to apply now.
Just shortening for all branch related commands.
"current branch" in an easy solitary way.
To adjust the last commit with catch-up changes.
Habitual from previous VCSes. To edit commit message is more useful because it never should be one-liner in a final version.
Obviously needed before commit is created from parts.
Maybe "cp -n", etc. is enough but often used in some flows.
Convenience for log view styles.
For some flows, merge is impossible - it's required to actualize the working state regularly.
Interactive rebase helpers in different styles to keep propositions clear.
Rare but... for a new work, having basic empty commit is crucial to keep the first commit clear. Otherwise, complex dances with filtering are needed. (I'm wondering why it is not in Git base logic.)
I'd also note some crucial settings out of aliases:
To show base version for a conflict - crucial both for a human and automatic merging tools.
Otherwise some tools avoid paging.
Never push many-to-many without an explicit specification in a command.
Useful default to minimize underwater pull effects.
Thanks @netch80 I have reviewed the post and I some backslashes were missing. Thanks for your comments. Really helpful.
Wow, I think @tpenguinltg probably has some of the most elaborate ones I've seen, nice config you have there!
And all of you have shared practical examples; hats off to the author and others who shared their aliases. I will add mine here, though most of them are a bit generic and unimaginative. 😅
Thanks for sharing @killshot13 !!
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.
I dont use any :))
xD
I have only two aliases:
Haha! Love the second one. Thanks for sharing @primo
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!
Really like this discussion. Added many of these to my .gitconfig
Thanks @hasii2011
NB "git wip" conflicts with standard alias setting for Gerrit, for which injection of an alias series "ready", "wip", etc. is suggested (and supported by a local installer).
I really only do two
git fixup
And
My first git alias
Jamund Ferguson ・ Apr 16 '21 ・ 2 min read
Thank you @jessekphillips
Wow! didn't know that. Thanks @natescode !!
I have a handful of useful git aliases that help me be more productive:
Thanks for sharing @michi
dev.to/austincunningham/git-log-pr...
Nice one @austincunningham Thanks!
Nice ones also @ginomempin . Thanks for sharing!
Hello, how do I add my alias
Hi @motuncoded , just create a
.gitalias
file 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!
Sorry to be a Party Pooper!!
But why not use ZSH with the Oh ZSH add-on and it's various plugins. ohmyz.sh/
Even posted on Dev.to
dev.to/0xkoji/do-you-know-oh-my-zs...