when I run
> git log --oneline
I get output that looks like this
abcdef0 (head, branch, origin/branch) comment
0987654 different comment
1234567 (different-branch, origin/branch) third comment
But as soon as I pipe the output to anything (e.g. > git log --oneline | cat
), the branch names are gone
abcdef0 comment
0987654 different comment
1234567 third comment
This means I can't grep, or add line numbers, or anything like that.
(It's also missing the colors and less
style behavior, but I don't care about that either way today)
Is this something I can re-enable via a command-line parameter?
For start, I too had noticed the lack of colors after a pipe to bash, but what you describe about decorations (branch and tag names) disappearing is odd. Let's adress them separately.
Adressing the branch names (decorations) themselves
--decorate
is the flag for that, for a one-shot use.
For the permanent effect, you can set it in your config
log.decorate true
And for a more specific need, note you can use it in a pretty format, with the placeholder %d
, for example :
git log -10 --pretty=format:"%C(yellow)%h %C(reset)%aN %ar %C(red)%d %C(reset)%s"
for a result that looks like this
About colors
No, I don't know how / why it breaks when it's passed to bash, I'll let more advanced users answer that part. (and as I said, on a personal note I'm very glad you asked this question because I'm eager to know that too - Edit : thanks torek! :-) )