Subject: merging bare repository

From: Ilya Basin <[email-masked]>
Date: Fri, 13 May 2011 14:51:32 +0400

Hi list. Please suggest me a solution. There's a remote repository;
we're not allowed to push to. We have several committers.
So I want to create a local mirrror. We will push our changes to it.
Once in a while I want to sync this repo with upstream.

Here's what I do:

on server:
    [git@server]$ git clone --bare ssh://[email-masked]/git/project.git /git/project.git

on workstation:
    [me@client]$ git clone ssh://git@server/git/project.git
    [me@client]$ cd project
    [me@client]$ touch aaa
    [me@client]$ git add aaa
    [me@client]$ git commit aaa -m abracadabra
    [me@client]$ git push

back on server:
    [git@server]$ git log
    commit e5c871122cadfa4ed4d2ab488852ecdb803b4bd8
    Author: Ilya Basin <>
    Date:   Fri May 13 13:39:39 2011 +0400

        abracadabra

I want to merge with upstream
    [git@server]$ git fetch
    [git@server]$ git merge origin
    fatal: This operation must be run in a work tree

I read this article:
http://www.pragmatic-source.com/en/opensource/tips/automatic-synchronization-2-git-repositories
The solution described there doesn't work

If I use --mirror instead of --bare to clone the repo, all local
commits discarded when I fetch.