This week I’ve been learning git (about which I’m now a believer). I’m moderately savvy with the OSX terminal, but I’ve had to do a bit of spelunking in configuration files–which offer something of a learning curve. This post documents the solution to a small problem that seemed, at first, quite difficult to solve with a Google search. I offer the solution here in case someone has a similar question and can more easily find this post. While this might be common knowledge for the advanced git user, I could see it confounding a beginner (read: me).
When I would run “git log” to see a history of commits, git would display them on a new screen, rather than inline with the rest of the terminal content. See below:
For ease of reference, I wanted those commits to display inline with the rest of my Terminal content. The problem is that git displays (at least in oh-my-zsh, the shell I’m using) the logfile with less, a Unix file viewing program. You can determine this by looking in title bar of the terminal window. Mine reads “git log -1 – git – less – 72x9”, and the takeaway here is that you can discern a great deal of helpful info from the Terminal title bar (also contained in that string, for example, is “git log -1”, the command I ran to see the most recent commit).
So my question was: How can I tell git (or oh-my-zsh) to stop displaying the git log in less and instead display the log content inline? Complicating the process was the fact that I didn’t know if this was a git configuration issue or a zsh configuration issue.
The key term I was missing is “pager”, which I found via this stack exchange conversation. As noted there, I can display the log content outside of less with the following command:
git --no-pager log -1
which yields the following output:
And the following command tells git (by editing .gitconfig) to default to a pager-free display:
git config --global core.pager cat
Again, a solution that was easy to find on stackoverflow–once I had acquired the proper vocabulary.