我刚刚升级了我的操作系统和 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
3 回答
他们很好 .
如果没有输出,终端将没有任何内容 .
git状态
您已创建新文件,但未添加或提交它,因此没有更改 .
git status
git diff(无参数)
打印工作目录和索引之间的差异 .
git log -1
git log -1
应该打印日志中的最后一次提交 .从这里问题很清楚:
(我不确定为什么这条线被分成两个这样的线) . 有效的
git status
命令未使用您的寻呼机 .git clone
也没有使用你的寻呼机 . 但是,git branch
,git diff
和git log
默认情况下都使用您的寻呼机,显然设置为pager
.系统上的
pager
命令或别名似乎通过读取标准输入并且根本不显示任何内容来工作 . 因此git branch
列出的master
分支,git diff
中的差异和git log
的日志列表被这个pager
命令吃掉并丢弃,让你无话可看 .安装新版本的Git可能会将您的寻呼机更改回更常见的
less
设置,而不是将此更改为pager
.显然,
git
版本2.20刚刚发布:https://github.com/git/git/releases . 我downloaded it和installed it from the source,现在我可以在控制台中看到一切 . 我仍然不知道git
2.17有什么问题 .