如何更新一个混帐克隆 – 镜像?

我创build了一个git仓库来镜像一个活的网站(这是一个非纯粹的git仓库):

git clone --mirror ssh://user@example.com/path/to/repo 

现在,为了保持这个镜像克隆的更新,从远程原点的所有更改,我必须使用哪个或哪些命令?

我想保持一切更新:提交,参考,钩,分支机构等

谢谢!

这是您需要在镜像上执行的命令:

 git remote update 

关于提交,参考,分支和“ 等等 ”,马格努斯答案只是工作(git远程更新)。

但不幸的是,没有办法克隆/镜像/更新钩子 ,因为我想…

我已经find了这个非常有趣的关于克隆/镜像钩子的主题:

http://kerneltrap.org/mailarchive/git/2007/8/28/256180/thread

我学会了:

  • “挂钩”不被认为是存储库内容的一部分。

  • 还有更多的数据,比如“.git / description”文件夹,它不会被克隆,就像钩子一样。

  • 出现在“钩子”目录中的默认钩子来自TEMPLATE_DIR

  • git上有这个有趣的“模板”function。

所以,我可以忽略这个“克隆挂钩的东西”,或者为了我的镜像的目的(仅用于其他克隆的备份+源代码)而使用rsync策略。

那么…我只会忘记钩子克隆,并坚持“git远程更新”的方式。

  • Sehe刚刚指出,不仅“克隆”不是由克隆/更新过程来pipe理的,而且还包括存储,还原等。因此,对于严格的备份,rsync或相当于真正的路要走。 因为这对我来说并不是真的有必要(我可以买不到挂钩,存储等),就像我说的那样,我会坚持“远程更新”。

谢谢! 改进了一下我自己的“git-fu”… 🙂

看到这里: Git不会克隆后续克隆上的所有分支?

如果你真的想通过拉分支而不是push --mirror ,你可以看看这里:

在git裸仓库中的“fetch -all”不会将本地分支同步到远程分支

这个答案提供了如何相对简单地实现的详细步骤: