Hi. > Problem #6: push - reject - pull - push sequence sometimes transforms > into a loop with several iterations and doesn't add happiness. As far as I undestand, this is the most annoying thing. In git (like other distributed systems), you cannot push your changes unless you merge them with a very last version of the whole repository. I think the only good way to use git in a team with more than a very few persons is to switch to pull-request based workflow, which does not require users to update to push their changes. Then their changes are merged to master either by a human integrator or by a tool (gitorious, github, stash, gerrit etc.). I think it can be even as little as 'update' hook, thich is triggered when user pushes to branch like 'inbox/bob' and tries to merge the branch to master. The only issue I can see with it is that does not provide a way to specify meaningful merge message. Btw, then the problem#2 is not a problem, because the merge done by user does not yet produce the commit to be added to master, but just prepares more recent version - to resolves conflicts or check how the changes work against newer codebase. One more merge is still performed by the server, and parent order is correct: master =====+===+======2 \ \ / your copy +===1==+ -- Max -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html