如何自动化git以在服务器上自动克隆存储库?

wis*_*shi 4 git git-clone

我有一个要在其中推送更改的存储库。我想将两个存储库:./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.
Run Code Online (Sandbox Code Playgroud)

好了,现在我删除pages目录,并且git clone可以了。但这不是干净的解决方案,不是吗?

有什么方法可以不必手动删除pages目录吗?我想使该过程自动化,以便git在我按下时自动执行操作。

最好,马吕斯

Amb*_*ber 5

为什么不只为存储库创建一个接收后钩子,该钩子将在pages.git存储库内执行一个操作以git pull获取pages更改?git clone旨在每个生成的克隆仅运行一次(因此为什么它会抱怨直到删除前一个克隆),而git pull旨在在每次要使用另一个更改进行更新的存储库时重复运行。

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

cd /var/repos/path_to_mirror || exit
unset GIT_DIR
git pull origin master
Run Code Online (Sandbox Code Playgroud)
  • 在这种情况下,path_to_mirror相当于pages您的情况。
  • 该脚本将在pages.git/.git/hooks/post-receive文件中。