I have created a git repository to mirror a live site (which is a non-bare git repository):
git clone --mirror ssh://user@example.com/path/to/repo
Now, to keep this mirror clone updated with all changes from its remote origin, which command or commands I must use?
I'd like to keep everything updated: commits, refs, hooks, branches, etc.
Thanks!
This is the command that you need to execute on the mirror:
git remote update
Regarding commits, refs, branches and "et cetera", Magnus answer just works (git remote update).
But unfortunately there is no way to clone / mirror / update the hooks, as I wanted...
I have found this very interesting thread about cloning/mirroring the hooks:
http://kerneltrap.org/mailarchive/git/2007/8/28/256180/thread
I learned:
The hooks are not considered part of the repository contents.
There is more data, like the
.git/descriptionfolder, which does not get cloned, just as the hooks.The default hooks that appear in the
hooksdir comes from theTEMPLATE_DIRThere is this interesting
templatefeature on git.
So, I may either ignore this "clone the hooks thing", or go for a rsync strategy, given the purposes of my mirror (backup + source for other clones, only).
Well... I will just forget about hooks cloning, and stick to the git remote update way.
- Sehe has just pointed out that not only "hooks" aren't managed by the
clone/updateprocess, but also stashes, rerere, etc... So, for a strict backup,rsyncor equivalent would really be the way to go. As this is not really necessary in my case (I can afford not having hooks, stashes, and so on), like I said, I will stick to theremote update.
Thanks! Improved a bit of my own "git-fu"... :-)
See here: Git doesn't clone all branches on subsequent clones?
If you really want this by pulling branches instead of push --mirror, you can have a look here:
"fetch --all" in a git bare repository doesn't synchronize local branches to the remote ones
This answer provides detailed steps on how to achieve that relatively easily:
来源:https://stackoverflow.com/questions/6150188/how-to-update-a-git-clone-mirror