我有一个我想要推动变化的回购。我想同步两个存储库:./ 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在我推送时自动执行操作。
最佳, 马吕斯
答案 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
挂钩pages
,pages
上的Post-receive
或push
的简单副本。
{{1}}挂钩在远程仓库上运行。由于{{1}} 所有引用更新后,执行。