我正在尝试用PHP、exec和一个批处理文件执行多个git命令。当我从cmd窗口执行bat文件时,它运行得很好。但由于某些原因,当我使用exec调用bat文件时(在PHP中),它只执行until call git add -A 。Commit命令不会执行。当我手动执行它( commit命令),然后再次运行脚本时,文件将被推送到存储库...问题似乎是,如果脚本是通过PHP中的exec执行的,那么它不想提交文件。
call git add -A
这是我的php:
exec('C:\wamp\www\git.bat "C:/wamp/www/project" "project"');
这是我的bat文件:
@echo off set drupal_root=%1 set repo_name=%~2 pushd %drupal_root% call git init call git remote add origin https://repo-url/%repo_name%.git call git add -A call git commit -m "Initial commit" call git push origin master
有谁知道原因是什么吗?
【玩转 GPU】有奖征文
精美礼品等你拿!
在" Windows shortcut to run git bash script “之后,尝试执行bash脚本(使用Git for Windows bash shell),而不是bat脚本:
exec('C:\Git\bin\sh.exe" --login -i C:\wamp\www\myscript.sh "C:/wamp/www/project" "project"');
(将 C:\Git\bin\sh.exe 替换为安装Git for Windows的路径。)
C:\Git\bin\sh.exe
使用 myscript.sh
myscript.sh
#!/bin/bash drupal_root=$1 repo_name=$2