自动镜像git存储库

时间:2010-08-27 09:56:11

标签: git version-control dvcs

使用外部Subversion存储库的一个副作用是在每次提交时获得自动异地备份。

我想用Git实现同样的目标。

即。每次提交到我的本地存储库都会自动提交到外部存储库,因此两个存储库始终保持同步。

我认为提交后挂钩是可行的方法。有没有人有这方面的具体例子?

1 个答案:

答案 0 :(得分:20)

我为此目的写了一个post-commit钩子。钩本身很简单;只需将名为post-commit的文件添加到.git/hooks/目录,其中包含以下内容:

git push my_remote

post-commit文件应该是可执行的。另外,请确保添加一个名为my_remote的{​​{3}}存储库,以使此挂钩工作。

我还创建了一个名为post-merge的符号链接,指向post-commit。这是可选的。如果您这样做,您也将在合并后自动同步。

更新:如果您想确保服务器和镜像不同步,并确保所有分支也都已备份,那么post-commit挂钩可以使用:

git push my_remote -f --mirror