GitHub from the command line with hub

Starting a New Project

Starting a new project is also much easier from hub than via the standard GitHub interface. To create a repository to host a new project, simply run:

$ git init
$ git add .
$ git commit -m "My New Project"
$ hub create
$ git push -u origin HEAD

Forking from the Command Line

Hub makes the process of collaboration on GitHub much easier by giving you the ability to create fork repositories with just one command. You can also check the CI status of a particular branch of a project or invoke pull requests, all with a single command.

To clone a repo, as above, you can just run:

$ hub clone octocat/MyNewProjectFork

And then navigate to the clone:

cd MyNewProjectFork

Then it's time to fork the repository. You can enter a single command:

$ hub fork --remote-name origin

And then push the fork to your new remote:

$ git push origin feature

Then you can check the CI status of your new fork, again with a single command:

$ hub ci-status --verbose

Automation and API

Perhaps the most powerful feature of hub, and one that more experienced developers will find extremely useful, is the ability to script GitHub tasks via the command line. You can also list or create issues, pull requests, or GitHub releases in the format of your choice. For instance, to list the URLs of the last 20 pull requests for the develop branch, you can run:

$ hub pr list --limit 20 --base develop --format='%t [%H] | %U%n'

The functionality of hub is then further increased by the hub api extension [7], which allows you to make any requests that the GitHub API can handle. Support for the API greatly increases the reach and power of hub, because it means you can work with more advanced tools like GraphQL [8] and open source AIs [9] directly from your terminal.

The syntax for working with hub api is a little more complex than the examples I've given up until now, but the tool comes with a detailed and frequently updated set of manual pages [10] that can take you through the process of extending your hub install.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • Perl: CMS with GitHub

    With its easy-to-use web interface, GitHub can be put to totally different uses than archiving code. For example, Perlmeister Mike Schilli used GitHub to deploy a content management system for simple websites.

  • Perl: Collaborate with GitHub

    GitHub makes it easier for programmers to contribute to open source projects by simplifying and accelerating communications between project maintainers and people willing to contribute.

  • Branch Management

    Git makes version control as simple as possible. To manage your Git branches successfully, you need to learn the ins and outs of git branch and git merge.

  • Git Essentials

    Once you've started using Git, these seven utilities can help you get the most out of this essential version control system.

  • Command Line: Vundle

    If you use Vim, you'll likely need a tool to manage its hundreds of plugins. Vundle can help.

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More