How to get current Git branch using PHP ?


Git is a distributed version control system (DVCS) that is used for tracking changes in computer files and coordinating work on those files among multiple people. It was created by Linus Torvalds in 2005 and is now maintained by the Git Project community.

Git allows developers to keep track of different versions of their code and collaborate with others on a project. It allows them to easily switch between different versions of the code, revert to previous versions, and collaborate with others by merging changes.

In Git, a branch is a pointer to a specific commit in the repository’s commit history. It allows developers to work on multiple versions of the codebase simultaneously.

When a new branch is created, it points to the same commit as the branch it was created from. As new commits are added to the branch, it moves forward in the commit history.

Follow this video for complete guidance :

The following script gets the current git branch using PHP

$stringfromfile = file('.git/HEAD', FILE_USE_INCLUDE_PATH);
$firstLine = $stringfromfile[0]; //get the string from the array
$explodedstring = explode("/", $firstLine, 3); //seperate out by the "/" in the string
$branchname = $explodedstring[2];
echo $branchname;

This code is written in PHP and it is reading a file named “HEAD” located inside a “.git” directory. The file() function is used to read the contents of the file and store it in an array, with each line of the file as an element in the array. The first line of the file is then stored in a variable $firstLine.

The explode() function is used to split the contents of the $firstLine variable by the “/” character, and store the resulting array in the $explodedstring variable. The third element of this array is then stored in the $branchname variable.

Finally, the echo function is used to display the contents of the $branchname variable, and the die; statement is used to terminate the script execution. This code will output the branch name that the “.git/HEAD” file is pointing to.



Comments are closed.