From: Max Kirillov Date: Fri, 02 May 2014 20:56:48 GMT Subject: Re: A failing attempt to use Git in a centralized environment Message-ID: <20140502205648.GA5188@wheezy.local> In-Reply-To: <4ay6w9i74cygt6ii1b0db7wg.1398433713382@email.android.com> 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