Git Best Practices For Managing Multiple Projects?

Does anyone have any thoughts (or links to thoughts) around using git (or specifically, GitHub) to manage the source code for multiple projects? Naming conventions, tagging, managing software built for multiple platforms, using the wiki etc.? We are standardizing on git, but I only ever been a consumer of git, I’ve never been on the management side. How do other people use it?

While I’m more focused on SVN administration due to my company not being near ready to take on Git, the GitHub docs themselves really are a pretty good starting point. As well, try and ferret out some of the bigger GitHub public projects, and check how they are organized. Building for multiple platforms tends to be less about the source control system, and more about your build pipeline. For this, check out Jenkins, Atlassian Bamboo, and ThoughtWorks Go (there are many many others, of course).

While biased more towards TeamForge and their particular Git solution, also check out the blogs and webinars provided by CollabNET. They have some great info, especially on how to get Git going in an enterprise (since you are already standardizing on it, you are already over the first major hurdle). They have an upcoming webinar on how to migrate from ClearCase to Git if you anyone is in that particular hell :) The folks at ThoughtWorks might have some good stuff too, though maybe not so much Git-specific as general DevOps. However, on the management side you want all you can get there as well.

Thanaks Daagar!

Forgot one very handy blog post: http://nvie.com/posts/a-successful-git-branching-model/

There are of course many different branching models out there, some better suited for some SCMs than others. The above however is a great one use if you don’t already have a set process.

git-flow is a handy way to get that nice branching model easily.

I’d suggest looking into git submodules. There’s a lot of good ways to allow you to keep projects in separate repositories but interact if needed.

Are “tags” basically version numbers?

Yeah, basically release points.

http://git-scm.com/book/en/Git-Basics-Tagging

The git book for anyone interested. Tagging chapter selected.