How I've started managing GitHub pulls

I don’t like GitHub’s pull interface. They make merge commits, which suck. And I want to work from the command line, not the web site.

When I noticed that I was losing on the scoreboard, I wrote a quick and dirty script to list open pull requests for a repository from the command line: github-list-pulls.

You'll need a GitHub token, as I describe in "How to move CPAN RT tickets to Github". And you'll need to put it and your user name in your ~/.gitconfig file. Or you need to edit my code to store those another way.

It works like this:

$ cd ~/git/path-iterator-rule
$ github-list-pulls
dagolden/path-iterator-rule:

  2013-02-28T21:48:19Z Implementation for line_match and contents_match rules

    Includes test cases and documentation.

    Link: https://github.com/dagolden/path-iterator-rule/pull/8

    git-fetch-branch git://github.com/tobyink/path-iterator-rule.git master

That last line lets me copy and paste the command for another script I have that creates a local review branch of a pull: git-fetch-branch.

Here’s how that one works:

$ git-fetch-branch git://github.com/tobyink/path-iterator-rule.git master
Fetched git://github.com/tobyink/path-iterator-rule.git master -> review/tobyink-master

Then I can work with the local review/tobyink-master branch to inspect it, rebase it, cherry-pick it, amend it, run tests or whatever.

I’m glad the pull requests and related discussions are on GitHub, but I like working with them locally. Now I can.