解决git输出不完整

简介: 解决git输出不完整

前言
平时会在 windows+linux 两种环境下进行开发,版本控制软件用 git 比较多,但是一直有个小问题,在 windows 下使用 git Bash 比较顺手,但是在 linux 使用 git 部分命令的时候,常常会打开一个新的窗口,按q键才能退出,比如 git branch、git log、git show 等等。

如果是使用 git log 查询日志后想进行合并或者回退等操作时,因为日志信息已经退出没有显示在当前窗口,这种情况会比较麻烦,有时候还需要额外再查询一次,还有就是 git branch 命显示内容常常较少,单独打开一个窗口也没有必要,所以想单独设置这种情况,后来查询资料发现,这与 git 的 pager 设置有关,特此记录一下。

什么是 pager
pager 其实就是分页器,也就是对一大段内容进行分页显示的工具,git 在一些版本中默认使用的是 less 工具,不同的版本默认设置会有差异,这也就是造成我在 windows 下没有自动分页,而在 linux 下会打开新窗口进行分页的原因。

git 的分页器可以通过 core.pager 来进行设置,他会被 git 命令行解释,影响分页器的变量有多个,他们起作用的顺序依次是 $GIT_PAGER 环境变量,core.pager git配置,$PAGER 环境变量,如果这些都没有设置,默认会选择编译时的选项(通常为less),具体细节可以参考官方文档 git core.pager。

设置 core.pager
了解了上面的原理,我们就知道只要单独修改 git 配置就可以了,默认的分页器是 less,我们只要设置了 core.pager 就可以影响结果,所以在 git Bash 中执行下面的语句即可。

git config --global core.pager ''
1
其实就是将分页器清空就行了,这样再执行 git branch 的时候就不会出现分页的情况了。

更精细的设置
设置 core.pager 这项配置后对 less 分页器进行了全局屏蔽,虽然 git branch 这种显示内容少的命令比较方便了,但是执行 git show 的时候不分页反而会显得混乱,有没有单独设置每个 git 命令的配置呢?

答案当然是肯定的,比如上面提到的这种情况,我们只想屏蔽 git branch 命令的分页,而想保留git show 和 git log 的分页显示,就可以单独执行下面的命令。

git config --global pager.branch false
1
这样就可以达到只屏蔽 git branch 命令的分页结果了。

less and more
临时插播个知识点,less 和 more 都是 linux 的文本显示工具,那么它们谁更厉害一点呢?从名字上来看应该是 more 更厉害,但实际上是 less 更厉害,less 在 more 的基础上加上了后退功能(据说最初版本more不能后退,现在的常见版本已经支持后退功能了),支持上下键翻页,并且速度更快一点,所以在 linux 的世界一直流传着 “less is more” 这句话。另外 more 退出后会在 shell 上留下刚显示的内容,而 less 不会。

总结
使用 git config --global core.pager '' 命令可以屏蔽 git 默认的分页器 less
使用 git config --global pager.branch false 命令可以只关闭 git branch 命令的分页显示
less 命令比 more 命令更加强大,支持上下键翻页,退出后不会在 shell 显示刚才的内容

目录
相关文章
|
2天前
|
开发工具 git
|
2天前
|
算法 开发工具 git
【git 实用指南】git 增加 本地代码 git add 相关命令和复杂情况需求
【git 实用指南】git 增加 本地代码 git add 相关命令和复杂情况需求
105 0
|
9月前
|
开发工具 git
Git标签命令
Git标签命令
38 0
|
10月前
|
开发工具 git
git clone & git reset 补充
git clone & git reset 补充
50 0
|
开发工具 git
git 命令怎么创建新分支?
git 命令怎么创建新分支?
312 0
git 命令怎么创建新分支?
|
缓存 开发工具 git
Git问题:git branch -a命令无法显示最新分支问题
Git问题:git branch -a命令无法显示最新分支问题
385 0
Git问题:git branch -a命令无法显示最新分支问题
|
开发工具 git
【Git&GitHub - 5】:Git添加文件并提交到本地(git status、git add、git commit、git log命令的使用)
【Git&GitHub - 5】:Git添加文件并提交到本地(git status、git add、git commit、git log命令的使用)
170 0
【Git&GitHub - 5】:Git添加文件并提交到本地(git status、git add、git commit、git log命令的使用)
|
Shell 开发工具 git
Git - Git Log 退出方法
Git - Git Log 退出方法
373 0
Git - Git Log 退出方法
|
开发工具 git
Git - git checkout & git branch 创建/删除分支用法及区别
Git - git checkout & git branch 创建/删除分支用法及区别
153 0
|
Java 测试技术 开发工具
Git - Git Commit 格式规约
Git - Git Commit 格式规约
378 0
Git - Git Commit 格式规约

相关实验场景

更多