Show sha1 only with git log
bash, git
Solution
An alternative to `git log --format` is the `git rev-list` plumbing command. For scripting purposes it's the recommended choice as the interface can be relied on to be stable (although for simple uses like this I'd be surprised if `git log` isn't sufficiently stable).
for sha1 in $(git rev-list HEAD) ; do
: # Do something with $sha1
done
Problem
I want to write a Bash script that loops over the sha1s of commits output by an invocation of `git log`. However, `git log` gives me much more output than I want: ``` commit 0375602ba2017ba8750a58e934b41153faee6fcb Author: Mark Amery <markamery@notmyrealemail.com> Date: Wed Jan 1 21:35:07 2014 +0000 Yet another commit message This one even has newlines. commit 4390ee9f4428c84bdbeb2fed0a461099a6c81b39 Author: Mark Amery <markamery@notmyrealemail.com> Date: Wed Jan 1 21:30:19 2014 +0000 Second commit message. commit bff53bfbc56485c4c1007b0884bb1c0d61a1cf71 Author: Mark Amery <markamery@notmyrealemail.com> Date: Wed Jan 1 21:28:27 2014 +0000 First commit message. ``` How can I get `git log` to just output sha1s so that I can loop over them conveniently?