I just stumbled on a cool command-line utility put out by GitHub called "Hub". It attempts to mimic the git command while adding lots of useful functionality for GitHub Users.
To give you a taste, I'll demonstrate a common GitHub task with plain old git, and then with the new hub command.
Hub provides simple cloning functionality that saves you a trip to the browser to grab a repository's url. Now, you can just reference the name of the repository you wish to pull down.
# Before
git clone https://github.com/laravel/framework.git
# After
hub clone laravel/framework
Have I piqued your interest? Let's dive in.
I'm assuming you are on a Mac using homebrew, if not, go here for more details.
brew install hub
If you'd like, you can keep the git command and hub command separate. However, I did come across this line in the docs:
hub can be safely aliased as git so you can type $ git
in the shell and get all the usual hub features.
I think this is pretty cool, so I opted to go this route. Add the following command to your .bashrc, .zshrc, or .bash_profile file:
alias git=hub
After restarting your shell, or running source ~/.bashrc, your git command is now supercharged with all of the features from hub.
Note: you can also run
hub aliasfor instructions on aliasing.
Let's go through my favorite use cases for using hub. If you're curious, you can head to the documentation to discover more things I haven't covered.
It's common for me to start work on a project locally, then eventually create a GitHub repository for it. Hub makes this process a little easier.
git create
Now, a repository named after the current folder will have been created on my GitHub account, and my local git repo will be linked to it.
If you pulled down a public repository and want to contribute to it by making pull-requests off your own fork. Hub makes that process simple:
git fork
The above command will fork the repo on your GitHub account and add the remote reference for you.
From within a separate branch (that has been pushed to GitHub), run:
git pull-request
A Vim window will open where you can type the title and description. Upon closing the Vim window, the pull-request will be created and its URL will be provided to you.
If a developer makes a pull-request to a GitHub repo that you maintain, you may want to checkout their branch locally. Here's how you would accomplish that using Hub.
git pr checkout <The PR number>
If you don't know the number, you can view a list of open PRs directly from the command line using:
git pr list
This is something I usually copy and paste from GitHub, but now, with the much simpler Hub API, I can pull PRs down easily.
This one is my personal favorite: the ability to create and tag a release on GitHub directly from the command line. Simply pass the release name to the git release create command.
git release v1.3.1
After running that command a Vim window will open, prompting you to add a title and description if you wish.
To me, Git and GitHub go hand in hand. Having a tool that unifies operations from both is a big time saver.
Enjoy the time savings!
- Caleb
I send out an email every so often about cool stuff I'm working on or launching. If you dig, go ahead and sign up!