是否有一个命令行开关传递给默认情况下git diff
使用less
寻呼机的其他命令?
我知道我可以将它传递给cat,但这会删除所有语法高亮显示.
我知道我可以将全局.gitconfig中的寻呼机设置为cat by GITPAGER=cat
(或类似的东西); 但我想有时候有寻呼机(取决于差异的大小).
但是,如果有的话,我更喜欢命令行开关; 我无法找到一个,通过手册页.
当我使用git branch
命令列出所有分支时,我看到输出git branch | less
.
该命令git branch
应该显示分支列表,就像ls
文件一样.
这是我得到的输出:
我如何获得默认行为git branch
?导致分页输出的原因是什么?
我正在使用ZSH oh_my_zsh
(在那里没有Git),我.gitconfig
看起来像这样:
[user]
email = myemail@mail.com
name = Dennis Haegler
[push]
default = simple
[merge]
tool = vimdiff
[core]
editor = nvim
excludesfile = /Users/dennish/.gitignore_global
[color]
ui = true
[alias]
br = branch
ci = commit -v
cam = commit -am
co = checkout
df = diff
st = status
sa = stash
mt = mergetool
cp …
Run Code Online (Sandbox Code Playgroud) 我有几个属于一起的git存储库,以及简单的批处理/ bash文件来循环它们.我经常使用log命令循环它们以快速查看它们处于什么状态.这很好用,除了一件事:如果提交消息长于我的控制台宽(或有多行)的字符数,git显示该行,然后是一个换行符(END),我必须按q继续(我猜它通过更多或类似的东西管道输出).例:
> gitloop . "git log --decorate=short --pretty=oneline -n1"
18629ae238e9d5832cb3535ec88274173337a501 (HEAD, origin/master, master) short log
625fb891b9b0b8648459b07ace662ae3b7773c7f (HEAD, origin/master, origin/HEAD, master) short log
dc0838118266ba8570ea338c1faddfe8af0387bb (HEAD, origin/work, origin/master, work, master) oops loooooooooooooong log
-(END)
Run Code Online (Sandbox Code Playgroud)
这是相当不方便的,因为我必须按q几次,而我只想一次看到所有这些oneliner.
如何禁用此行为(最好还是保留此日志格式)?
我根据EdgeCase 的Git Immersion教程创建了一个Git别名,如下所示:
hist = log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short
Run Code Online (Sandbox Code Playgroud)
但现在它似乎正在分页结果 - 显示(END)
结果后的终端显示,迫使我Q继续工作.我读到通过添加--no-pager
标签,您可以禁用此功能; 如何将其合并到别名中?我在最后,之前log
和之后尝试过,而且没有一个能够奏效.Git抛出一个错误,说它是一个无法识别的参数,或者它改变了环境变量.有什么建议?