Improve Your Git Productivity with Bash

Dale Nguyen on October 16, 2019

There are a few methods that you can work with Git. You can either use some user-friendly software like SourceTree to manage your workflow and repo... [Read Full]
markdown guide

I have lots of git aliases... some in git config and others in bash_profile.
The one I find the most useful is for checking diff of commits between two branches.

But regarding your first alias, I’d like to raise attention that you should review what you’re committing and an alias as you’ve described may prevent less experienced developers from reviewing changes before committing.

There’s another problem with aliases... when you have to work on a machine that’s not yours, you won’t know how... unless you configure your aliases.

I’m not against aliases, I have some myself.
Just sharing concerns for others to see and consider.


I always use git add -p when I want to commit. It will go through each chunk of changes and ask if I want to add it or not. It’s a great way to review what you are going to commit, spot and skip some leftover debugging code, and it allows you to make smaller commits at the same time.

You can even edit the patch before adding it, which is daunting at first but can be quite convenient to quickly omit a leftover print statement in the middle of an otherwise valid change.


Thanks for your concern. I agree that we should check the differences before committing. This step is done after we check everything. We can do it in the editor like VSCode or through the alias: gs and gd.


Seems to me your looking for git commit -am <message> but I caution, the reason most of these commands are separate is because you should be aware of what your commiting, all to often junior engineers use got as a remote backup of their hard drive and while there is some more truth to that; users should be aware of what they are adding and WHY (that's the point of the message).


git commit -am <msg> is different from git add . && git commit -m <msg>. The former does not add newly created files to the index.


You can do this in any shell, not just bash.


I've been maintaining something like this for a while now... I use it every day...! :-D

It adds and commits in one go, warns me of committing on master, shows the log graph easily, manages commit profiles (rudimentary) and plenty more. I might admittedly have gone overboard.

The only catch is that because of the dependency on bash-builder, it only runs properly on Ubuntu/Debian. No guarantees elsewhere until I rewrite bash-builder distro-agnostically...


Nice work, Tai! As long as it is useful, somebody will like it too.


Nice, I'm not the only one who hates repetition :D


Using the gp alias, I'd be confused on whether I was doing a pull or a push.


Git push is not that easy compared to Git pull, so gp is only for Git pull. You will remember after using it for few times.

code of conduct - report abuse