Why git_remote_branch? ====

The basic idea for git_remote_branch is to trivialize the interaction with remote branches in simple situations.

For now git_remote_branch assumes that the local and remote branches have the same name. Multiple origins are supported.

Another goal of git_remote_branch is to help teach the real underlying git commands. Each operation done on your behalf is displayed at the console.

Installation ====

sudo gem install webmat-git_remote_branch –source=gems.github.com

Note: don’t add gems.github.com as a permanent source for your gems. Check out gems.github.com for more information on the matter. If you’ve included it already and find yourself in trouble, check out chalain.livejournal.com/71260.html.

Usage ====

Notes:

  • parts between brackets are optional

  • When ‘origin_server’ is not specified, the name ‘origin’ is assumed.

Available commands (with aliases):

Help ==

$ grb [-h] #=> Displays help

create (alias: new) ==

Create a new local branch as well as a corresponding remote branch from the branch you are currently on. Automatically track the new remote branch (useful for pulling and merging). Switch to the new branch.

$ grb create branch_name [origin_server]

delete (aliases: destroy, kill, remove) ==

Delete the remote branch then delete the local branch. The local branch is not deleted if there are pending changes.

$ grb delete branch_name [origin_server]

track (aliases: follow grab fetch) ==

Track an existing remote branch locally.

$ grb track branch_name [origin_server]

rename (aliases: rn, mv, move) ==

Rename the remote branch by copying and deleting the old name. Checkout a new local tracking branch with the new name and delete the branch with the old name. branch_name is the new name, the old name is always the current branch’s

$ grb rename branch_name [origin_server]

explain ==

All commands can be prepended by the word ‘explain’. Instead of executing the command, git_remote_branch will simply output the list of commands you need to run to accomplish that goal. Examples:

$ grb explain create git_remote_branch version 0.2.2

List of operations to do to create a new remote branch and track it locally:

git push origin master:refs/heads/branch_to_create git fetch origin git branch –track branch_to_create origin/branch_to_create git checkout branch_to_create

$ grb explain create my_branch github git_remote_branch version 0.2.2

List of operations to do to create a new remote branch and track it locally:

git push github master:refs/heads/my_branch git fetch github git branch –track my_branch github/my_branch git checkout my_branch

History ====

This script was originally created by Carl Mercier and made public on his blog here:

No nonsense GIT, part 1: git-remote-branch blog.carlmercier.com/2008/01/25/no-nonsense-git-part-1-git-remote-branch/

I’m using it as a starting point to make it even easier to interact with remote repositories.

Contributors ===