我已经建立了一个远程目录并在其中初始化了 .git。
我可以推送到这个 repo,但我需要它将项目拉到目录中以模仿我本地 repo 的结构。
这是我需要运行接收后挂钩的地方吗?如何从目录中的本地 .git 中提取项目文件?
谢谢你的帮助。
我已经建立了一个远程目录并在其中初始化了 .git。
我可以推送到这个 repo,但我需要它将项目拉到目录中以模仿我本地 repo 的结构。
这是我需要运行接收后挂钩的地方吗?如何从目录中的本地 .git 中提取项目文件?
谢谢你的帮助。
.git/hooks
在被调用的中创建一个钩子post-receive
。该文件应包含以下内容...
#!/bin/sh
GIT_WORK_TREE=/path/to/where/you/want/working/files git checkout -f
我在试图让它与一个不是的 git repo 一起工作时遇到了一些问题--bare
(git init --bare
在设置时使用,然后将工作目录放在其他地方)
例子:
mkdir yourbarerepo.git
cd yourbarerepo.git
git init --bare
cd hooks
touch post-receive
nano post-recieve
#paste in contents above
#make sure the path where you want the working files to go is already created
使用 git push 可以让您将 git 存储库中的更新推送到不同的远程。
当您推送到远程时,您所做的就是将更改发送到 git 存储库。如果您希望更改目录结构,则需要以某种方式检查最新版本的代码。
您可以使用接收后挂钩来执行此操作。您需要快进远程分支。请注意,在发布接收挂钩完成之前,客户端不会断开连接。
这是您要查找的内容的快速概述:http: //toroid.org/ams/git-website-howto
请参阅此 SO 帖子:Git Post-Receive Hook for Website Staging
这个网站似乎也很有帮助: http: //githooks.com/