使用PHP exec在bat文件中执行git命令

时间:2014-12-01 10:55:37

标签: php git batch-file exec

我试图用PHP,exec和批处理文件执行多个git命令。 当我从我的cmd窗口执行bat文件时,它运行得很好。但由于某种原因,当我用exec(在PHP中)调用bat文件时,它只执行until call git add -A。提交突击队员没有被执行。当我手动执行它(提交命令),然后再次运行脚本时,文件被推送到repo ...问题似乎是脚本如果通过执行执行文件而不想提交文件用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

任何人都知道原因是什么?

1 个答案:

答案 0 :(得分:0)

在“ 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"');

(用安装Windows的Git的路径替换C:\Git\bin\sh.exe。)

使用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