我创建了一个 git 仓库来镜像一个实时网站(这是一个非裸体的 git 仓库):
git clone --mirror ssh://[email protected]/path/to/repo
现在,为了让镜像克隆不断更新远程源的所有变更,我必须使用哪些命令?
我想更新所有内容:提交、引用、钩子、分支等。
谢谢!
关于提交、引用、分支和 "et cetera",马格努斯的答案就是可行的(git remote update
)。
但遗憾的是,没有办法像我想要的那样 "克隆"/镜像/"更新 "钩子...
我找到了这个关于克隆/镜像钩子的非常有趣的主题:
http://kerneltrap.org/mailarchive/git/2007/8/28/256180/thread
我学到了
钩子不被视为版本库内容的一部分。
还有更多的数据,如.git/description
文件夹,和钩子一样不会被克隆。
出现在 hooks
目录中的默认钩子来自 TEMPLATE_DIR
目录。
git 有一个有趣的 "模板 "功能。
因此,考虑到镜像的目的(仅用于其他克隆的备份和源代码),我可能会忽略这个"克隆钩子的事情",或者采用rsync
策略。
好吧...我会忘掉克隆钩子,坚持使用git 远程更新
的方式。
谢谢!改进了一点我自己的"git-fu"... :-)
如果你真的想通过拉取分支而不是 "push --mirror "来实现这一目的,可以看看这里:
该答案提供了如何相对轻松地实现这一目标的详细步骤: