使用外部Subversion存储库的一个副作用是在每次提交时获得自动异地备份。
我想用Git实现同样的目标。
即。每次提交到我的本地存储库都会自动提交到外部存储库,因此两个存储库始终保持同步。
我认为提交后挂钩是可行的方法。有没有人有这方面的具体例子?
答案 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