如何在 Git 别名中包含 --no-pager?
Posted
技术标签:
【中文标题】如何在 Git 别名中包含 --no-pager?【英文标题】:How do I include --no-pager in a Git alias? 【发布时间】:2011-07-02 11:05:52 【问题描述】:我根据 EdgeCase 的 Git Immersion 教程创建了一个 Git 别名,如下所示:
hist = log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short
但现在它似乎正在分页结果 - 显示结果后终端显示 (END)
,迫使我点击 Q 继续工作。我读到通过添加--no-pager
标签,您可以禁用此功能;如何将其合并到别名中?最后,在log
之前和之后,我都试过了,但都没有奏效。 Git 抛出一个错误,说它是一个无法识别的参数,或者它改变了环境变量。有什么建议吗?
【问题讨论】:
不过,你真的不想这样做。一旦你开始使用具有大量历史记录的 git 项目,日志将非常长。 【参考方案1】:注意:对于 Git 2.18(2018 年第二季度),别名可以为 --no-pager
使用更短的选项:
“git --no-pager cmd
”没有短而甜的单字母选项。现在可以了。
别名现在可以是:
hist = "!git -P log ..."
参见Johannes Sixt (j6t
) 的commit 7213c28(2018 年 5 月 3 日)。(由 Junio C Hamano -- gitster
-- 合并于 commit c9aac55,2018 年 5 月 23 日)
git
:添加-P
作为--no-pager
的短选项可以将寻呼机“
less
”配置为使用备用 屏幕来显示内容,例如,通过在 环境。 在此配置下关闭时,会切换回原来的屏幕,所有内容都消失了。要求输出在 终点站。为此,可以使用选项
--no-pager
。 但是输入起来有点麻烦,即使命令完成是 可用。 提供一个简短的选项,-P
,以使选项更多 易于访问。
【讨论】:
在脚本中我更愿意将其写出来以便于理解。在 CLI 上使用它当然仍然有用。 @Xerus 我同意:脚本不支持,CLI 支持。【参考方案2】:--no-pager 选项在log
之后使用时会给出unrecognized option
错误,但通过将--no-pager 放在日志之前-“git --no-pager log ....”有效
【讨论】:
部分解决方案很好 - 使用这种方法 git 不会为给定命令使用寻呼机。但是,它会因另外两条消息过早终止... #1 - 错误:警告:由于文件过多,已跳过详尽的重命名检测。 #2 - 警告:您可能希望将 diff.renameLimit 变量设置为至少 3072 并重试该命令。【参考方案3】:您只需将其转换为 shell 命令即可轻松做到这一点:
hist = "!git --no-pager log ..."
【讨论】:
对不起标题,我的错。不过感谢您的帮助!以上是关于如何在 Git 别名中包含 --no-pager?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Python 中从需求安装中包含 git 分支? [复制]