Creates new remotes if needed and fetches objects before cherry-picking. $ git cherry-pick http://github.com/mislav/REPO/commit/SHA > git remote add -f mislav git://github.com/mislav/REPO.git > git cherry-pick SHA
A remote must be an existing repo on GitHub. $ git fetch mislav > git remote add mislav git://github.com/mislav/REPO.git > git fetch mislav
…ub" gem If users keep the gem installed, they have a chance to be notified of updates and they can refresh their standalone script. Also, executables in ~/bin should have precedence over gem executables, so no need to uninstall.
…epo issues`) New abilities: $ hub compare -> When on a branch that tracks "remotebranch", for example, this opens "github.com/user/repo/compare/remotebranch". In effect if the tracked branch is not "master". $ hub browse reque issues -> open http://github.com/user/resque/issues $ hub browse -> When on a branch that tracks "remotebranch", for example, this opens "github.com/user/repo/tree/remotebranch". In effect if the tracked branch is not "master". $ hub browse -- commits -> open http://github.com/user/repo/commits/master If this branch is tracking a remote branch: -> open http://github.com/user/repo/commits/remotebranch Supported subpages: - "tree" (default) - "wiki" - "commits" - "issues", "network", "downloads" or any other arbitrary string is simply appended to URL path
…ables Fake `git` and `open` executables are pushed to PATH in testing and error out when invoked. This is because there are tests that shell out to `git init` and `git clone`, or open the browser, and bugs and failures in these tests would previously cause them to poke around the system uncontrolled.
Less juggling of constants, more ruby methods. Information that requires shelling out (e.g. GitHub username, token, repo name ...) is now loaded on demand, meaning no shelling out for commands that don't need it. Tests are now safer; they are prevented from shelling out to get info. All test data is stubbed. New `github_url` method builds needed URLs while keeping sensible defaults. Commands that open the browser (`compare`, `browse`) now share a bit of underlying implementation and recognize the same flags (`-p`, `-u`).