Hub is a command line tool that extends git with Github specific commands, and also some other git enhancements but this post is just about the Github aspect. I originally thought it was not useful but I gave it a try and after a few months, it’s now part of my everyday tool kit.
Hub can easily be installed on OSX with:
brew install hub
Once finished, now you’re off to the races. I added all these aliases to my
.gitconfig
.
Open A Pull Request
I always open pull requests from the command line, it’s so efficient and quick it’s almost magic. My work flow is like so:
git chb new-feature # checkout new branch
git a # adds all changes to staging
git c "My commit"
git pb # pushed branch to remote
git pr "Pull request name"
Alias
chb = checkout -b
a = add -A
c = commit -m
pb = !git push -u origin $(git rev-parse --abbrev-ref HEAD)
pr = !hub pull-request -m
Check Continuous Integration Status
This shortcut will check the CI status of the current branch. I run this some time after opening a pull request.
Alias
ci = !hub ci-status -v
View Current Branch
Some times I need to see the current branch on Github or I just want to open the repo in the browser. You’ll use this more often than you think.
Alias
view = !hub browse -- tree/$(git rev-parse --abbrev-ref HEAD)
Code Request Pull Request
When someone asks me to code review a pull request, I now always ask for the number so I can open it from the command line.
git cr #{pull-request-number}
Alias
cr = !hub browse -- pull/"$1"/files
Conclusion
I hope you find these command as useful as me. If you want to see my full git config, it is open source.