动态选择git寻呼机



我更喜欢通过设置.gitconfig:来使用diff-so-fancy作为我的自定义数字寻呼机

[core]
pager = "diff-so-fancy | less --tabs=4 -RFX"

但在一些没有安装diff-so-fancy的机器上,我怎么能回到原来的git寻呼机呢?

您应该能够定义一个shell函数来检查可执行文件的存在:

[core]
pager = "f() { if which diff-so-fancy>/dev/null; then pre=diff-so-fancy; else pre=cat; fi; $pre | less --tabs=4 -RFX;  }; f"

或缩短版:

[core]
pager = "f() { pre=$(which diff-so-fancy); ${pre:-cat} | less --tabs=4 -RFX; }; f"

但我想知道,为什么要在没有安装diff-so-fancy的系统上定义一个使用它的寻呼机?为什么不在这些系统上将core.pager设置为其他值呢?这是一个全局配置,所以每个系统只需要设置一次

编辑

该功能甚至没有必要,这可以进一步缩短为:

[core]
pager = "pre=$(which diff-so-fancy); ${pre:-cat} | less --tabs=4 -RFX"
if ! command -v diff-so-fancy &> /dev/null
then
git config —-global core.pager less
# When it doesn’t exist
exit
fi
git config --global core.pager "diff-so-fancy | less --tabs=4 -RFX"
exit

如果—-version存在,你可以在测试时添加它,实际上我以前从未使用过它。

最新更新