In a recent project, I am finding way to display current git branch on the backend dashboard.
Without a application dependent library, executing CLI git
seems to be the fastest way.
i.e. The exactly same syntax as we use in bash/cmd/powershell.
$currentBranch = exec('git rev-parse --abbrev-ref HEAD');
However, it worked in production/staging Linux machine, but not in local Windows machine.
It does work if I specify the absolute path C:\Program Files\Git\bin\git.exe
, but it’s not optimal because it will be machine dependent.
After a while, I figure out the environment PATH
variable is missing in Windows that cause git
not being picked up.
The trick is, add this line before exec
call to:
putenv('PATH=' . $_SERVER['PATH']);
If you are macOS user, ServBay.dev is a good tool, especially for the beginners. It handles all PHP, MariaDB, PostgreSQL versions, plus Redis and Memcached. Run multiple PHP instances simultaneously and switch easily. This tool has made my PHP dev simpler. Worth a shot!