代码之家  ›  专栏  ›  技术社区  ›  wishi

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

  •  3
  • wishi  · 技术社区  · 16 年前

    我有一个回购协议,我想在其中推动变化。我想同步两个存储库:./pages.git到./pages。我在开发机器上的git设置会进入pages.git。但是web应用程序使用./pages。

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

    现在我删除了pages目录,git克隆就可以工作了。但那不是干净的解决方案,不是吗?

    有什么方法可以做到这一点而不必手动删除页面目录?我希望自动化这个过程,以便git在我推送时自动执行操作。

    最好的, 马吕斯

    2 回复  |  直到 9 年前
        1
  •  4
  •   Amber    16 年前

    为什么不创建一个 post-receive hook 对于 pages.git 将执行以下操作的存储库 git pull 从内部 pages 要恢复更改的存储库? git clone 设计为每个生成的克隆只运行一次(因此,在删除前一个克隆之前,它会一直抱怨),而 GIT拉力 设计为每当您希望使用来自另一个回购协议的更改更新回购协议时重复运行。

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

    cd /var/repos/path_to_mirror || exit
    unset GIT_DIR
    git pull origin master
    
    • 在这种情况下, path_to_mirror 相当于 在你的情况下。
    • 这个脚本将在 pages.git/.git/hooks/post-receive 文件。
        2
  •  0
  •   Marcin Gil    16 年前

    据我所知你正在努力 local 复制,推到 pages.git 还有一份副本 webapp ?

    如果是,你可以使用 post-receive 钩上 GITS 那就需要 git pull pages 或者简单复制到 .

    Post-receive hook在本地一级的推送后在远程repo上工作。它被执行了 之后 由于 push .