2

基本上,我希望 git diff 和 git log 自动通过管道传输到 less ,这样我的提示就不会被代码弄得乱七八糟。

例如,当我运行“git diff”时,我得到以下输出

WarriorPoet@JARVIS: /mnt/c/../Robot_one -> git diff
diff --git a/lib/movement/movement.cpp b/lib/movement/movement.cpp
index 523c2c1..3e323d6 100644
--- a/lib/movement/movement.cpp
+++ b/lib/movement/movement.cpp
@@ -1,6 +1,10 @@
// bunch
// of
// code
WarriorPoet@JARVIS: /mnt/c/../Robot_one -> _

我的全局 .gitconfig 具有以下内容:

[core]
   whitespace = cr-at-eol
   excludesfile = ~/.gitignore
   pager = less -R
[pager]
   diff = true

而且我没有我知道的本地 .gitconfig 文件。

编辑:

运行 'git config --global -l | grep 寻呼机'

core.pager=less -R
pager.diff=true

并运行 'git config --local -l | grep pager' 没有输出,而 'git config --system -e' 为空。

我在 Windows 上的 Ubuntu 上运行 Bash,在 Windows 10 上。

4

2 回答 2

1

我没有.gitconfig我知道的本地文件。

你可以检查一下git config -l --show-origin

看看项目stevemao/diff-so-fancy是否对 cleanup 感兴趣git diff

然后,您可以使用 page 来管道其结果:

git config --global core.pager "diff-so-fancy | less --tabs=4 -RFX"

这给了你:

git diff对比git diff --color | diff-so-fancy

https://cloud.githubusercontent.com/assets/39191/13622719/7cc7c54c-e555-11e5-86c4-7045d91af041.png


ayorgo在评论中指出“如何防止 'git diff' 使用寻呼机?

 git config --global core.pager 'less -+F -+X'
于 2017-03-18T06:41:05.117 回答
1

如果您在要比较的仓库中,您可以检查所有配置值(包括本地配置值)

git config -l

这将列出键值对。您还可以使用以下方法过滤寻呼机值

git config -l | grep pager

查看是否有任何本地配置值覆盖了您的全局配置值。

此外,如果您使用的是旧版本的 git(我相信低于 2.8) git config -l --show-origin将无法工作。您可以使用,作为解决方法,

git config --system -e

git config --global -e

git config --local -e

使用配置文件打开您配置的编辑器并找到位置。例如,如果 Notepad++ 是您配置的编辑器,那么文件位置将显示在顶部。

于 2017-03-18T12:56:59.163 回答