git命令错误地保持沉默:Ubuntu 18.04.1 LTS上的git 2.17.1

时间:2018-12-09 12:38:47

标签: git ubuntu-18.04

我刚刚升级了操作系统和git,并且诸如git loggit diffgit 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

3 个答案:

答案 0 :(得分:2)

问题在这里很明显:

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 branchgit diffgit log都使用您的寻呼机,显然,该寻呼机被设置为pager

系统上的pager命令或别名似乎可以通过读取标准输入并且什么也不显示来工作。因此,master列出的git branch分支,git diff的差异(如果有的话)和git log的日志列表被此pager命令吃掉并抛出走开,什么都看不见。

安装新版本的Git可能会将您的寻呼机改回更常见的设置less,而不是此损坏的pager

答案 1 :(得分:1)

显然,git的2.20版本刚刚发布:https://github.com/git/git/releases。我downloaded itinstalled it from the source,现在可以在控制台中看到所有内容。我仍然不知道git 2.17有什么问题。

答案 2 :(得分:0)

很好。

如果没有输出,则终端中将没有任何内容。


git status

您已经创建了一个新文件,并且没有添加或提交该文件,因此没有任何更改。

  • 您会看到带有git status
  • 的文件

git diff (no parameters)

打印出工作目录和索引之间的差异。


git log -1

git log -1应该在您的日志中打印最后一次提交。