linux - git log 不显示所有项目
问题描述
我已经使用 git 很多年了。但是突然,git log
命令开始什么也没显示。当我键入git log
命令时,它只是结束并且什么也不显示。
该命令git rev-list --all --pretty
确实返回所有提交以及其他信息。
commit b89bbaafc0854b57230d5e5018dd72d48106eb03
Merge: 96758ec 60c87e1
Author: Ali Ayub Khan <akhan.bscs15seecs@seecs.edu.pk>
Date: Sat May 19 14:05:01 2018 +0500
Merge pull request #33 from hkedia321/master
fix #32 - update readme and ping heroku to prevent from sleeping
因此,“git log”命令开始什么都不显示。我卸载了 git 并重新安装了,但它仍然无法正常工作。这对于所有项目(新旧项目)都是一样的。我正在使用 Ubuntu 16.04 LTS。有人可以帮我解决这个问题吗?
解决方案
(我现在才发现转移到聊天的讨论。)
我建议使用git --no-pager log
,它的工作。然后我问git var GIT_PAGER
产生了什么,以及重定向到什么程序;答案是:
$ git var GIT_PAGER
pager
$ which pager
/home/hkedia321/anaconda3/bin/pager
其他人询问了退出状态,即 141:这表示 Linux 上的 SIGPIPE。
所以,这意味着这个位置的程序——<code>/home/hkedia321/anaconda3/bin/pager——在某种程度上有问题。它不是一次显示一页输出,而是简单地退出而不显示任何内容,或者死于 SIGPIPE 信号。我会在这里注意到,pager
在我自己的 Ubuntu 16.04 系统上/usr/bin/pager
,它是一个符号链接/etc/alternatives/pager
,它本身就是一个符号链接/bin/less
。
(我自己git var GIT_PAGER
制作less
,所以我/bin/less
更直接地经历。)
因此,您的两个选择是:
- 修复此
pager
程序以使其正常工作,或 - 避免这个特定
pager
的程序。
less
如果您喜欢作为寻呼机,后者很容易,因为您可以简单地运行:
git config --global core.pager less
(仅特定于 Git),或导出设置:
PAGER=less
在您的环境中,这就是我在 Linux 系统上所做的,在我的.profile
文件中使用以下代码片段:
# bash and sh use "type" a bit differently, but both will
# exit 0 if the command exists (or is an alias).
command_exists() {
type "$1" >/dev/null 2>&1
}
# if less exists, use it as pager; if lesspipe exists, set its env too
command_exists less && {
export PAGER=less
export LESS=FRX
command_exists lesspipe && eval $(lesspipe)
}
(这是特定于使用 sh 或 bash 的类 Unix 系统,尽管它试图进行自我调整)。
推荐阅读
- android - Admob 预加载横幅广告 android
- python - 是否可以将 tensorboard 2.0 的新超参数功能与使用旧版本 tensorflow 构建的模型一起使用?
- keras - 如何更改每个批次的嵌入层中的输入长度?
- image - 如何在matlab中将一幅图像的相位与另一幅图像的幅值组合并生成组合图像的倒数
- c - 链接二进制文件以从其原始目录执行
- git - 在 git 分支中拒绝更新
- python - 代码适用于一个功能,但不适用于两个功能
- python - 如何保存 ipv4 地址,然后将其用于查询 API?
- python - 根据 Python 数据框中的变量打印特定行
- android-studio - 如何修复“无法连接到远程进程。中止调试会话”的错误