Monday, February 7, 2011

Using Git even when collaborating with those that don't

I have been using Git for my personal projects for a while now.  I like how, since it doesn't have a centralized architecture, when working on single developer projects it basically feels like a system for keeping track of notes on what you were doing and organizing files so you can try new things easily.  It is made for collaboration though, and I have not used it much for that.

I did, however, just move a bunch of snapshots of my supervisors simulation code into a git repo.  This had the effect of organizing all of my files nicely and in one spot, provided a natural place to put weird side versions (as abandoned branches), as well as cutting about 1 GiB of files into around 20 MiB since versioned snapshots are basically 90% or more the same.  In addition, I am hoping that the merge tools will allow me to reduce the number of times I will have a directory labeled v1.36, one labeled v1.36_matt, and one labeled v1.36_robert.

Next time a colleague sends me a new version, I will just create a temporary branch, merge it into my current version, and tag it with the new version number.  So, even though I doubt that my supervisor will ever be able to spend the time to learn how to use Git, I think I will be able to use it to organize things on my end, which makes me a bit happier.