Я пытаюсь выполнить несколько команд git с PHP, exec и командным файлом.
Когда я запускаю bat-файл из моих окон cmd, он работает отлично. Но по какой-то причине, когда я вызываю файл bat с помощью exec (в PHP), он выполняет только до call git add -A
, Коммит коммандос не выполняется. Когда я выполняю его вручную (команда commit) и затем снова запускаю скрипт, файлы помещаются в репозиторий … Проблема, похоже, в том, что скрипт не хочет фиксировать файлы, если он выполняется через exec в PHP.
Это мой php:
exec('C:\wamp\www\git.bat "C:/wamp/www/project" "project"');
И это мой файл летучей мыши:
@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
У кого-нибудь есть подсказка, в чем может быть причина?
Следующий «Ярлык Windows для запуска скрипта git bash«попробуйте вместо этого выполнить скрипт bash (используя оболочку git для Windows Git for Windows):
exec('C:\Git\bin\sh.exe" --login -i C:\wamp\www\myscript.sh "C:/wamp/www/project" "project"');
(Заменить C:\Git\bin\sh.exe
с путем, где вы установили Git для Windows.)
С myscript.sh
:
#!/bin/bash
drupal_root=$1
repo_name=$2
cd $drupal_root
git init
git remote add origin https://repo-url/${repo_name}.git
git add -A
git commit -m "Initial commit"git push -u origin master
Других решений пока нет …