Выполнение команд git в bat-файле с помощью PHP exec

Я пытаюсь выполнить несколько команд 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

У кого-нибудь есть подсказка, в чем может быть причина?

2

Решение

Следующий «Ярлык 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
0

Другие решения

Других решений пока нет …