如何在同一CLI终端的屏幕上显示'git branch'的输出?
我很抱歉,但我的问题措辞有问题。我在CLI上运行(如何在同一CLI终端的屏幕上显示'git branch'的输出?,git,shell,command-line-interface,Git,Shell,Command Line Interface,我很抱歉,但我的问题措辞有问题。我在CLI上运行(zsh,如果有必要的话),使用git版本2.20.0和macOS(我想我在家里的Ubuntu系统上也遇到过) 问题:如何在同一CLI屏幕上显示git branch的输出?i、 如果我跑步 $ git branch $ 它会弹出一个新的屏幕/窗口(在我的CLI中),显示我的所有分支。按q关闭屏幕并将我返回shell。问题是我不记得我的分支机构的名称!我想把它们印在屏幕上 理想产量, $ git branch * master branch_01
zsh
,如果有必要的话),使用git版本2.20.0
和macOS(我想我在家里的Ubuntu系统上也遇到过)
问题:如何在同一CLI屏幕上显示git branch的输出?i、 如果我跑步
$ git branch
$
它会弹出一个新的屏幕/窗口(在我的CLI中),显示我的所有分支。按q
关闭屏幕并将我返回shell。问题是我不记得我的分支机构的名称!我想把它们印在屏幕上
理想产量,
$ git branch
* master
branch_01
branch_02
temp_branch
experiment_2_delete
$
一个可疑的解决方法是执行以下操作:
$ git branch > stuff.txt
$ cat stuff.txt
* master
branch_01
branch_02
...
$
但它会在当前目录中创建一个新的文本文件,这会变得很混乱。记忆告诉我这曾经是git的工作方式。最近有些事情变了,快把我逼疯了!有没有办法恢复以前的行为?这实际上是你的寻呼机的问题(现在可能
less
)
大多数终端模拟器都提供了备用屏幕的概念。打开编辑器切换到此备用屏幕;此屏幕中显示的文本将保留在此屏幕中,并且仅保留在此屏幕中。退出编辑器将切换回主屏幕,备用屏幕文本将消失,这样您就可以返回到命令行会话,而不会使编辑器的显示混乱。如果这是您想要的,这很好,并且在使用编辑器时有一定的意义
不幸的是,这里的实现是对所有使用光标寻址模式的东西进行切换,而less
使用光标寻址模式。因此,这意味着通过less
的管道输出也会切换到备用屏幕
有许多变通方法和修复方法。less
本身最简单的方法是使用-X
选项,如和less
文档中所述:
-X或--no init禁用发送termcap初始化和取消初始化 连接到终端的字符串。如果 去初始化字符串会执行一些不必要的操作,例如 清除屏幕 请注意,Git默认运行
less-FRX
,因此,如果您(a)正在使用less
,并且(b)没有获得-FRX
,请通过core.pager
(或$Git\u pager
)和/或通过环境变量less
,检查是否覆盖了默认值
一些用户(包括我自己)真的,真的很讨厌这种交替屏幕切换,希望我们的编辑器输出保持在屏幕上。在这里,一个更强大的技巧是完全禁用备用屏幕。然而,这更难。看,例如,一些人真的,真的很喜欢这种行为,并且想在它关闭时打开它:看,例如,(其中有更多关于如何关闭它的链接)
(我自己使用“反编译terminfo,编辑alt屏幕转义序列,并编译我自己的terminfo”方法。)基本上,我想问一下如何在CLI上打印git分支,但这并不是真正的问题,人们会感到困惑。花了令人痛苦的30分钟输入这个问题。@phd阅读这个问题和答案-是的,这是重复的
git config--global pager.branch false
正是我所需要的!备案;我确实使用了搜索功能,但找不到该问题。当我创建这个问题时,它也没有作为一个备选问题出现。重复的问题经常出现,特别是当不清楚发生了什么时,这就是为什么重复的问题不坏的原因。我仍然建议确保您的less设置默认使用-X
(也可以使用-F
和-R
,以使颜色正常工作)。您还可以在~/.gitconfig文件中添加[core]pager=less-FRX
。这是一篇信息性文章,但更多是我想要的。谢谢@torek。