How to save git output to a variable in Bash

April 01, 2020

bash

Some git commands produce output in the terminal, for example, git log shows the details of previous commits. If you're writing a bash script to automate some build process then you might need to save the output from one of these git commands.

Save git command line output in a variable

To execute git commands in bash you can use env -i and then the git <command>, for example:

bash
1.env -i git log

To capture the output from that command, wrap the full command env -i git log in parenthesis:

bash
1.$(env -i git log)

Finally, set that output to a variable:

bash
1.GIT_LOG= $(env -i git log)

Save last git hash

In a recent project, I had to create a bash variable to store the output of the most recent commit hash. It's pretty useful if you need to create custom, unique, version names.

bash
1.LAST_GIT_HASH= $(env - i git log --pretty=format:'%h' -n 1)