问题
I created a Git alias based off of the Git Immersion tutorial by EdgeCase that looks like this:
hist = log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short
But now it seems to be paging the results — Terminal shows (END)
after the results are displayed, forcing me to hit Q to continue working. I read that by adding in the --no-pager
tag, you can disable this feature; how do I incorporate it into the alias? I've tried it at the end, before the log
, and right after, and none of them have worked. Git throws an error saying it is an unrecognized argument, or that it changes environment variables. Any advice?
回答1:
You can do that easily by just turning it into a shell command:
hist = "!git --no-pager log ..."
回答2:
Note: with Git 2.18 (Q2 2018), the alias can use a shorter option for --no-pager
:
"git --no-pager cmd
" did not have short-and-sweet single letter option. Now it does.
The alias can now be:
hist = "!git -P log ..."
See commit 7213c28 (03 May 2018) by Johannes Sixt (j6t).
(Merged by Junio C Hamano -- gitster -- in commit c9aac55, 23 May 2018)
git
: add-P
as a short option for--no-pager
It is possible to configure '
less
', the pager, to use an alternate screen to show the content, for example, by settingLESS=RS
in the environment.
When it is closed in this configuration, it switches back to the original screen, and all content is gone.It is not uncommon to request that the output remains visible in the terminal. For this, the option
--no-pager
can be used.
But it is a bit cumbersome to type, even when command completion is available.
Provide a short option,-P
, to make the option more easily accessible.
回答3:
The --no-pager option gives an unrecognized option
error when used after log
, but it worked by putting --no-pager before log - "git --no-pager log .... " worked
来源:https://stackoverflow.com/questions/5086342/how-do-i-include-no-pager-in-a-git-alias