13 September Remote branches in git
I have been using git for a while now, and I believe I have the the basic workflow under control. Committing, reverting, using local branches for major refactoring work: been there, done that!
However, I recently got some collaborators on my github-projects, I had to start working with other remote repositories and branches.
I found this blog post, which was really helpful. I am sharing some others things that helped me in the last couple of weeks. Hopefully, this saves other people some time Googling. If you know a better ways to accomplish these tasks, please let me know!
Things to remember about remote branches
Because I had some troubles discovering how to properly work with remote repositories, I am sharing what I found. The most important things to remember:
- Your local branches are not really connected to the remote branches. It is therefore possible to mix up branches, but this is usually not what you want
- Never forget to switch to the correct local branch (using
git checkout local-branch. - The names of the local and remote do not need to match.
- Before you can push changes from a local branch to a remote branch, all the commits of the remote branch have to be included in your local branch. This can be done using by executing
git pull remote-name remote-branchin your local branch.
Checking out a newly created branch in a remote repository
Bart is implementing Merb log parsing for request-log-analyzer. He has put his progress in a separate branch of the github project. My local repository does not yet include this branch, but I want to check it out. Note that I am using a different name than the branch name on the github project.
$ git branch merb origin/generic_base $ git checkout merb
When the new functionality is finished, the following commands will merge the changes in the merb branch to the master branch.
# goto my local master branch and merge the merb-branch $ git checkout master $ git merge merb # push the changes to the master branch on github $ git push origin master
Merging back a fork
Wes Hays is helping me out on the scoped_search plugin. He implemented OR in the query language in his own fork. I wanted to merge his changes back to master branch:
# add a reference to the remote repository $ git remote add gbdev git://github.com/gbdev/scoped_search.git # create a local branch for the fork to follow a remote branch $ git branch gbdev-fork gbdev/master $ git checkout gbdev-fork
Now, my local gbdev-fork branch contains Wes’s code. Because Wes’s repository was forked from my repository, git will know that most of the history of my master branch and gbdev-fork branch is the same.
After some testing, I was ready to include his changes by merging the gbdev-fork branch into my local master branch:
# go back to my master branch, and merge the changes $ git checkout master $ git merge gbdev-fork # push the changes to the master branch at hithub $ git push origin master
Pushing tags to a remote repository
You can create tags locally, but you probably want to send them to the remot repository as well:
# create a local tag "tagname" with the given message. $ git tag -a "tagname" -m "message" # send your tags to the remote repository "origin" $ git push origin --tags
4 Comments - Tags: branches, git, merging, remote


Lighthouse’s tagline is “beautiful simple issue tracking” and that really sums it up perfectly. It tracks issues, not only a bugs, so you can use it for all the issues that need to be dealt with. It’s simple and it’s easy to use, it just does what it needs to do without loads of unneeded features. A great advantage for us is that our designers can (and want) to use it too. It’s also very nicely priced and it has a sweet API for us geeks to build your own scoreboard 

