Show sha1 only with git log
You can use the --format
argument with a custom format that only includes the sha1:
git log --format=format:%H
The above command yields output like the following:
0375602ba2017ba8750a58e934b41153faee6fcb
4390ee9f4428c84bdbeb2fed0a461099a6c81b39
bff53bfbc56485c4c1007b0884bb1c0d61a1cf71
You can loop over the commit hashes in Bash like this:
for sha1 in $(git log --format=format:%H); do
: # Do something with $sha1
done
This is slightly more verbose than using git rev-list
, but may be your only option if you want to use ordering or filtering arguments for git log
that are not supported by git rev-list
, like -S
.
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