The*_*der 14 php windows git hook
我在Windows上执行Git挂钩时遇到问题.我有一个简单的仓库,在它的"hooks"文件夹中,我将以下内容放入"更新"和"预推"文件中,但PHP脚本永远不会被执行:
"c:/Programs/PHP/php.exe" c:/Data/Scripts/git-pre-push.phpcli %1
Run Code Online (Sandbox Code Playgroud)
有关为什么不执行PHP脚本的任何想法?
在Git控制台窗口中,当我尝试将某些内容推送到裸仓库时,我会看到以下内容:
POST git-receive-pack (437 bytes)
remote: error: hook declined to update refs/heads/master
To https://myuser@mydomain/samplerepo
! [remote rejected] master -> master (hook declined)
error: failed to push some refs to 'https://myuser@mydomain/samplerepo'
Run Code Online (Sandbox Code Playgroud)
...所以我知道"更新"以某种方式被执行.当我删除该文件时,推送工作正常.
kos*_*tix 20
默认情况下,Git for Windows使用自己的bashshell 的Windows端口执行钩子脚本.当然,Unix shell不知道%1.据推测,Git for Windows有额外的黑客攻击来检测"常见"文件扩展名 - 例如.bat- 并在这种情况下采取替代路线.
我认为你对自己程序的修复是最好的,但另一种方法是重写你的脚本来阅读
#!/bin/sh
c:/Programs/PHP/php.exe c:/Data/Scripts/git-pre-push.phpcli "$@"
Run Code Online (Sandbox Code Playgroud)
(除了暗示下一个人编辑脚本关于其内容的含义之外,shebang行在Windows下没有真正的特殊意义).
| 归档时间: |
|
| 查看次数: |
28710 次 |
| 最近记录: |