Вопрос
I have a remote git repository with big history and slow connection channel. Where are some local users, and slow push/pull after big commits or cloning from scratch for new users are big problems, now. I want to create local mirror of it. Local changes must be committed to local repo, and sync with remote in background. I understand that this problem is in demand, but I have not found any solution yet (I am not admin of remote repo, I just try to simplify local work with it).
Решение
Since you write in the comments that the people behind the slow connection would be doing most of the work, I would suggest you setup the slow remote site to be a mirror of your local repo you would commit against.
First make a bare clone of slow remote on a local server
$ git clone --bare git://slow/repo.git
You local people should now only commit to that clone, not the slow remote.
Then set up a cron job or something similar to push changes in your local repo to the slow site with
$ git push origin --mirror
By using --mirror
you tell git to push all branches and tags.
Другие советы
You should be able to make shallow clones with
git clone --depth=20 url-to-your-repo some-path
This should allow you to not bother with most of the history.