Nom*_*g25 7 windows apache git
我在Windows Server 2008 R2上运行XAMPP服务器.我正在运行Git 64bit版本2.16.1.windows.1我想post-receive在我从客户端进行推送后使用hook来更新我的网站.
我MyProject.git在服务器上创建了一个裸项目并将其克隆到MyProject.
我的钩子是:
#!C:/Program\ Files/Git/usr/bin/sh.exe
echo "Hook got triggered.." > hooks.txt
exec powershell.exe -NoProfile -ExecutionPolicy Bypass -File ".\hooks\post-receive.ps1"
Run Code Online (Sandbox Code Playgroud)
Powershell脚本是:
cd "C:/xampp/htdocs/webapp/myProject/"
git pull origin master
exec git-update-server-info
Run Code Online (Sandbox Code Playgroud)
我搜索了类似的问题而没有任何运气来解决问题.
如果我在powershell中手动运行脚本,它运行正常.根据我的日志,钩子甚至开火.
Apache上的Git看起来配置正确,因为我可以毫无问题地推送到远程,如果我在MyProject文件夹中对服务器进行拉动,我从repo获得的文件是正确的.
我错过了什么?
编辑:
我修好了我的钩子:
#!C:/Program\ Files/Git/usr/bin/sh.exe
echo "Hook got triggered.."
exec powershell.exe -NoProfile -ExecutionPolicy Bypass -File ".\hooks\post-receive.ps1"
Run Code Online (Sandbox Code Playgroud)
我的powershell脚本:
cd "C:/xampp/htdocs/webapp/myProject/"
unset GIT_DIR
git pull origin master
exec git-update-server-info
Run Code Online (Sandbox Code Playgroud)
我推送到远程时的响应是:
Counting objects: 3, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 296 bytes | 296.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0)
To http://git.mysite.com/myProject.git
999aeb1..cf0df6f master -> master
Run Code Online (Sandbox Code Playgroud)
没有"钩被触发......"的回应.
EDIT2: 我把我的钩子钉在了:
#!C:/Program\ Files/Git/usr/bin/sh.exe
echo "Hook got triggered.."
cd "C:/xampp/htdocs/webapp/drajv-tecaj/"
unset GIT_DIR
git pull origin master
Run Code Online (Sandbox Code Playgroud)
如果在bash中手动执行,脚本将正确运行.但是在我对客户端进行推送后,脚本仍然没有运行.
EDIT3 粘贴我的虚拟主机配置,我正在推动:
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/webapp"
ServerName git.mysite.com
<Directory "C:/xampp/htdocs/webapp">
Options +ExecCGI +Indexes +FollowSymLinks
Require all granted
</Directory>
<Directory "C:/Program Files/Git/mingw64/libexec/git-core/">
Require all granted
</Directory>
SetEnv GIT_PROJECT_ROOT C:/xampp/htdocs/webapp
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias /git "C:/Program Files/Git/mingw64/libexec/git-core/git-http-backend.exe/"
ScriptAliasMatch \
"(?x)^/(.*/(HEAD | \
info/refs | \
objects/(info/[Apache Git server on Windows^/]+ | \
[0-9a-f]{2}/[0-9a-f]{38} | \
pack/pack-[0-9a-f]{40}\.(pack|idx)) | \
git-(upload|receive)-pack))$" \
"C:/Program Files/Git/mingw64/libexec/git-core/git-http-backend.exe/$1"
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
如“ git post-receive not work beautiful ”中所示,您需要取消设置GIT_DIR才能使拉取在钩子内正常工作。
cd "C:/xampp/htdocs/webapp/myProject/"
unset GIT_DIR
git pull origin master
exec git-update-server-info
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
451 次 |
| 最近记录: |