A utility for cloning and fetching your remote git repositories from GitHub.
Latest commit 1296cf0 Jun 22, 2016 @pearkes committed on GitHub Merge pull request #20 from aliou/use-new-gopass-version
Update gopass calls to work with the latest version




Build Status

gethub helps you keep all of your git repositories that have GitHub remotes up to date.


You can download a binary, deb or exe, depending on your platform.

To determine your platform:

uname -sm

On Darwin, you can copy the binary to your bin:

cp ~/path/to/gethub /usr/local/bin/

Or, if you have Go installed:

go install github.com/pearkes/gethub

Getting Started

$ gethub authorize

This asks you where you want to clone your repositories as well as creating an OAuth token for future GitHub requests.

The next time you run a gethub, all of your new repositories will be cloned and your existing repositories will be fetched.

It's useful if you have a lot of repos and may not have an internet connection.

Never leave home without running gethub.

Directory Structure

It's opinionated about how you organize your repositories.

├── pearkes
│   ├── gethub
│   ├── tugboat
│   └── jack.ly
├── mitchellh
│   └── vagrant
├── amadeus
│   └── html7
├── someorg
│   └── bigproject
└── someotherorg
    └── biggerproject

Basically, your repositories will be name-spaced according to who the owner is on GitHub.

Behind the Curtain

$ gethub
  1. Checks to see if the necessary requirements for gethub exist, like it's ~/.gethubconfig file.
  2. Makes sure the path to your repositories looks ok.
  3. Clones any repositories that are missing.
  4. Runs git fetch in repositories that exist.


Configuration is stored in a .gethubconfig file in your home directory. (~/.gethubconfig)

Ignored Repositories

Sometimes you don't want to retrieve that gigantic project that someone committed .mov files to.

repo: icloud, facebook, pearkes/bootstrap
owner: adobe


Check out the contributing guide.