Usually, when I type:
$ git log --oneline --graph
I see something like this:

But recently, I typed:
$ git log --oneline --graph | head -15
And I saw this:

I was confused why the output differed; to my knowledge, head did not alter
its input at all. And indeed, it doesn’t - but git log does alter its output
depending on whether or not the output is a TTY. It does this via isatty(3).
Since git v2.13, git log gets a --decorate=auto default. The documentation
for git log --decorate reads:
If auto is specified, then if the output is going to a terminal, the ref names are shown as if short were given, otherwise no ref names are shown. The default option is short.
Since head is not a TTY, the ref names & color codes are omitted from the
output of git log.
You can see the call to isatty(3) in the git log source.