[英]How to update a git clone --mirror?
我创建了一个 git 存储库来镜像实时站点(这是一个非裸 git 存储库):
git clone --mirror ssh://user@example.com/path/to/repo
现在,要让这个镜像克隆更新来自其远程源的所有更改,我必须使用哪些命令?
我想保持一切更新:提交、引用、钩子、分支等。
谢谢!
这是您需要在镜像上执行的命令:
git remote update
关于提交、参考、分支和“等等”,Magnus 的回答很有效( git remote update
)。
但不幸的是,没有办法clone
/镜像/ update
钩子,正如我想要的那样......
我发现了这个关于克隆/镜像钩子的非常有趣的线程:
http://kerneltrap.org/mailarchive/git/2007/8/28/256180/thread
我学会了:
挂钩不被视为存储库内容的一部分。
还有更多数据,例如.git/description
文件夹,它不会被克隆,就像钩子一样。
出现在hooks
目录中的默认 hooks 来自TEMPLATE_DIR
git 上有这个有趣的template
功能。
因此,考虑到我的镜像的目的(仅用于其他克隆的备份 + 源),我可以忽略这个“克隆钩子的东西”,或者忽略 go 的rsync
策略。
好吧...我将忘记钩子克隆,并坚持git remote update
方式。
rsync
刚刚指出, clone
/ update
过程不仅不管理“钩子”,而且还管理 stash、rerere 等。 因为在我的情况下这并不是真正必要的(我可以负担得起没有钩子、藏匿处等),就像我说的那样,我会坚持使用remote update
。谢谢。 改进了我自己的“git-fu”..:-)
请参见此处: Git 不会在后续克隆中克隆所有分支?
如果你真的想要通过拉分支而不是push --mirror
来实现这一点,你可以看看这里:
git 裸存储库中的“fetch --all”不会将本地分支同步到远程分支
该答案提供了有关如何相对轻松地实现该目标的详细步骤:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.