Total Pageviews

Saturday, 5 April 2014

gethub

A utility for cloning and fetching your remote git repositories from GitHub.

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

Installation

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

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.
[ignores]
repo: icloud, facebook
owner: adobe 
 
from https://github.com/pearkes/gethub