如何自动git自动克隆服务器上的repo?

时间:2010-03-01 12:29:21

标签: git git-clone

我有一个我想要推动变化的回购。我想同步两个存储库:./ pages.git到./pages。我的开发机器上的git设置会推送到pages.git。但是网络应用程序与./pages一起使用。

git clone pages.git pages
fatal: destination path 'pages' already exists and is not an empty directory.

现在我删除了pages目录并且git clone工作了。但那不是干净的解决方案,不是吗?

有没有办法做到这一点,而无需手动删除页面目录?我想自动执行该过程,以便git在我推送时自动执行操作。

最佳, 马吕斯

2 个答案:

答案 0 :(得分:4)

为什么不为pages.git存储库创建一个post-receive hook,它将从git pull存储库中执行pages来移除更改? git clone被设计为每个生成的克隆只运行一次(因此它会在您删除上一个克隆之前一直抱怨),而git pull设计为每当您想要更新来自更新的repo时重复运行另一个。

我有一个与特定存储库基本相同的钩子设置,这里是它的要点:

cd /var/repos/path_to_mirror || exit
unset GIT_DIR
git pull origin master
  • 在这种情况下,path_to_mirror相当于您的情况中的pages
  • 此脚本位于pages.git/.git/hooks/post-receive文件中。

答案 1 :(得分:0)

根据我的理解,您正在处理local副本,请转到pages.git并获取webapp的副本?

如果是这样,您可以使用pages.git git pull挂钩pagespages上的Post-receivepush的简单副本。

从本地推送后,

{{1}}挂钩在远程仓库上运行。由于{{1}} 所有引用更新后,执行