【发布时间】:2015-08-28 09:21:27
【问题描述】:
我已经阅读了很多关于使用 git hooks 的文章,但并没有完全理解。我的设置如下:我正在为我的公司开发一个项目。我在我的 Mac 上为 Web 应用程序编写代码,然后将其推送到 bitbucket 上的存储库。在公司的本地网络中,有一台虚拟机运行着一台服务器。现在我远程登录到这个虚拟机并执行git pull 命令,如果我已经将一段新代码推送到了repo。我想使用 git hooks 配置一个推送部署方案,所以基本上每当我将一些新代码推送到 repo 时,VM 应该自动拉取它(你知道,就像某些服务允许你一样,例如 Laravel Forge)。
在虚拟机中有一个存储库的目录,比如C:\project(是的,它正在运行 Windows,*sigh*)。我尝试使用一些“hello-world”代码将post-receive 挂钩放入C:\project\.git\hooks 目录,例如
#!/bin/sh
ECHO "HELLO"
pause
但在我从我的开发环境中git push 之后,它并没有触发。我感觉好像我在这里做的事情完全错了,但找不到任何解决方案。提前致谢。
编辑
好的,把事情说清楚,我想要实现的目标:
- 我在我的 mac 上写了一些代码,然后我
push到 bitbucket 上的私人仓库; - 我公司本地网络中的 VM 已克隆此存储库;
- 发现bitbucket有一些变化;
- 使用 git-hooks,它从 bitbucket 向
pull运行一些代码,例如:
列表项
#!/bin/sh
cd ../.. # cd back to project directory
git pull
npm install
bower install
...
- 如果情况需要,我什至准备安排
git fetch任务,但没有任何挂钩。
【问题讨论】:
-
文件应该在
C:\project\.git\hooks,但也许那是你说的...... -
@joran,是的,我的意思是,我已经把它放进了钩子里,ofc。已编辑原帖,谢谢。
标签: git hook bitbucket githooks