Re: git push in a git-init without --bare option?
- From
- Pedro Sa Costa <psdc1978@gmail.com>
- Date
- Jun 26, 2011, 21:21 UTC
- Message-ID
- <201106262221.33294.psdc1978@gmail.com>
- In-Reply-To
- <vpqliwoa24m.fsf@bauges.imag.fr>
So this means that eveytime that I want a repository to be shared by several persons, the repository must always be bare?
Show 20 quoted lines
> Pedro Sa Costa <psdc1978@gmail.com> writes: > > - I see that in git, I can't do git-push to a repository that wasn't > > created with git-init --bare. Why? > > > > - But doing git-pull and git-checkout to the same repository is possible. > > I'm really confused. Any help? > > git pull involves a merge, and merge may involve conflicts, and > conflicts involve a user fixing them ... So, doing a "git pull" to merge > in remote changes is OK, but a "git push" cannot merge changes remotely, > hence the asymetry. > > Git could just send the commits, without updating the working tree, but > that would be terrible for the user. Let's say the user has no local > change before the push. His checkout points to the tip of a branch > (information stored in HEAD), so the tree matches the old HEAD. Updating > the branch means changing the commit pointed to by HEAD, hence after a > push, the tree does not match the HEAD anymore (which means the next > commit will seem to revert the pushed history). This is to prevent this > situation that Git refuses to push to non-bare repos.
-- Best regards, -----------------------