git 命令错误地静音:git 2.17.1 on Ubuntu 18.04.1 LTS
git commands are incorrectly silent: git 2.17.1 on Ubuntu 18.04.1 LTS
我刚刚升级了我的 OS 和 git
,git log
、git diff
和 git branch
等命令不正确。
$ git clone git@github.com:ropensci/drake
Cloning into 'drake'...
remote: Enumerating objects: 482, done.
remote: Counting objects: 100% (482/482), done.
remote: Compressing objects: 100% (341/341), done.
remote: Total 35298 (delta 377), reused 205 (delta 136), pack-reused 34816
Receiving objects: 100% (35298/35298), 88.73 MiB | 13.48 MiB/s, done.
Resolving deltas: 100% (28670/28670), done.
$ cd drake/
$ echo 123 > newfile
$ git status
On branch master
Your branch is up to date with 'origin/master'.
Untracked files:
(use "git add <file>..." to include in what will be committed)
newfile
nothing added to commit but untracked files present (use "git add" to track)
$ git diff
$ git log -1
$ git branch
$ git --version
git version 2.17.1
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.1 LTS"
编辑:使用 GIT_TRACE:
$ GIT_TRACE=1 git log -1
08:13:20.414948 git.c:344 trace: built-in: git log -1
08:13:20.417438 run-command.c:646 trace: run_command: unset
GIT_PAGER_IN_USE; LESS=FRX LV=-c pager
他们很好。
如果你没有输出,终端中将没有任何内容。
git status
您创建了一个新文件,但您没有添加或提交它,因此没有任何更改。
- 您看到此文件带有
git status
git diff (no parameters)
打印出工作目录和索引之间的差异。
git log -1
git log -1
应该在您的日志中打印最后一次提交。
显然,git
的 2.20 版刚刚发布:https://github.com/git/git/releases. I downloaded it and installed it from the source,现在我可以在控制台中看到所有内容。我仍然不知道 git
2.17 有什么问题(如果有的话)。
从这里问题就很清楚了:
08:13:20.417438 run-command.c:646 trace: run_command: unset
GIT_PAGER_IN_USE; LESS=FRX LV=-c pager
(我不确定为什么这一行会像这样分成两行)。有效的 git status
命令是 而不是 使用寻呼机。 git clone
也没有使用您的寻呼机。但是,git branch
、git diff
和 git log
都 do 默认使用寻呼机,它显然设置为 pager
。
您系统上的 pager
命令或别名似乎可以通过读取标准输入来工作,但什么也不显示。因此 git branch
列出的 master
分支、git diff
的差异(如果有的话)和 git log
的日志列表都被这个 pager
命令吃掉并抛出离开,让你没什么可看的。
安装新版本的 Git 可能会将您的传呼机改回更常见的 less
设置,而不是这个损坏的 pager
.
我刚刚升级了我的 OS 和 git
,git log
、git diff
和 git branch
等命令不正确。
$ git clone git@github.com:ropensci/drake
Cloning into 'drake'...
remote: Enumerating objects: 482, done.
remote: Counting objects: 100% (482/482), done.
remote: Compressing objects: 100% (341/341), done.
remote: Total 35298 (delta 377), reused 205 (delta 136), pack-reused 34816
Receiving objects: 100% (35298/35298), 88.73 MiB | 13.48 MiB/s, done.
Resolving deltas: 100% (28670/28670), done.
$ cd drake/
$ echo 123 > newfile
$ git status
On branch master
Your branch is up to date with 'origin/master'.
Untracked files:
(use "git add <file>..." to include in what will be committed)
newfile
nothing added to commit but untracked files present (use "git add" to track)
$ git diff
$ git log -1
$ git branch
$ git --version
git version 2.17.1
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.1 LTS"
编辑:使用 GIT_TRACE:
$ GIT_TRACE=1 git log -1
08:13:20.414948 git.c:344 trace: built-in: git log -1
08:13:20.417438 run-command.c:646 trace: run_command: unset
GIT_PAGER_IN_USE; LESS=FRX LV=-c pager
他们很好。
如果你没有输出,终端中将没有任何内容。
git status
您创建了一个新文件,但您没有添加或提交它,因此没有任何更改。
- 您看到此文件带有
git status
git diff (no parameters)
打印出工作目录和索引之间的差异。
git log -1
git log -1
应该在您的日志中打印最后一次提交。
显然,git
的 2.20 版刚刚发布:https://github.com/git/git/releases. I downloaded it and installed it from the source,现在我可以在控制台中看到所有内容。我仍然不知道 git
2.17 有什么问题(如果有的话)。
从这里问题就很清楚了:
08:13:20.417438 run-command.c:646 trace: run_command: unset GIT_PAGER_IN_USE; LESS=FRX LV=-c pager
(我不确定为什么这一行会像这样分成两行)。有效的 git status
命令是 而不是 使用寻呼机。 git clone
也没有使用您的寻呼机。但是,git branch
、git diff
和 git log
都 do 默认使用寻呼机,它显然设置为 pager
。
您系统上的 pager
命令或别名似乎可以通过读取标准输入来工作,但什么也不显示。因此 git branch
列出的 master
分支、git diff
的差异(如果有的话)和 git log
的日志列表都被这个 pager
命令吃掉并抛出离开,让你没什么可看的。
安装新版本的 Git 可能会将您的传呼机改回更常见的 less
设置,而不是这个损坏的 pager
.