Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Reading output of git push from PHP exec() function

I'm writing a deployment command for my framework's command line tool. It uses git to deploy.

I have a line where I do this:

exec("git push {$remote} {$branch}:{$branch}", $shell_output, $status);

I would like to have the output of the push inside $shell_output, but its not happening (The output just shows up on terminal). I think because git is an external program and therefore creates a new output stream?

I've tried using an output buffer described here to no avail. I'm sure theres something on SO that can answer this, but haven't been able to find it after much digging..

So any help will be much appreciated :)

like image 354
Nathan Kot Avatar asked Nov 14 '12 23:11

Nathan Kot


1 Answers

git sends its output to STDERR not STDOUT so you will need to redirect that with something like this:

git push REPO --progress 2>&1

or to a file:

git push REPO --progress > /path/to/file 2>&1

like image 194
Michael Avatar answered Nov 05 '22 01:11

Michael