Managed publishing of your personal git repository

From Bitpost wiki

I have published my code on gitorious. I work on my code from a lot of different places, whenever I have time, which means I have to make lots of small and insignificant submits. git can rebase commits, squashing them together into something much nicer and more controlled, and I am making use of that so that everything I push to gitorious is a worthwhile, and hopefully fairly stable, group of changes.

To do this, I have configured my working git repositories into two layers. The first is where I commit daily work, and the second is the published layer.

git branch
   master (published layer)
   daily_grind (working layer)

My git scripts always make sure these two layers are pushed and pulled and stay in sync.

When I am ready to publish a group of commits, I make sure my primary repository is up-to-date. Then, I merge daily_grind into master. Master is actually a clone of another repository in a different location, that is a clone of gitorious. Once I am happy with the merge to master, I can cleanly push to the gitorious clone. Then, I can cleanly push from the gitorious clone to git.

It's working great for me. If you would like to see more, check out my public gitorious repository, or email me for the scripts.