4

我有一个要在其中推送更改的存储库。我想同步两个存储库:./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 clone 工作。但这不是干净的解决方案,不是吗?

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

最好的,马吕斯

4

2 回答 2

5

为什么不直接为存储库创建一个接收后挂钩,该挂钩将从存储库中执行以提取更改?被设计为每个生成的克隆只运行一次(因此它为什么会抱怨,直到你删除前一个克隆),而被设计为在你想用来自另一个的更改更新一个 repo 时重复运行。pages.gitgit pullpagesgit clonegit pull

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

cd /var/repos/path_to_mirror || exit
unset GIT_DIR
git pull origin master
  • 在这种情况下,path_to_mirror相当于pages您的情况。
  • 该脚本将在pages.git/.git/hooks/post-receive文件中。
于 2010-03-01T12:35:58.747 回答
0

据我了解,您正在处理local副本,推送pages.git并获得副本webapp

如果是这样,您可以使用post-receive钩子pages.git来调用或简单地复制git pull到.pagespages

Post-receive从本地推送后,钩子在远程仓库上工作。它所有 refs 由于push.

于 2010-03-01T12:42:19.373 回答