如何更新一个混帐克隆 – 镜像?
我创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”不会将本地分支同步到远程分支
这个答案提供了如何相对简单地实现的详细步骤: