在bash中,我可以创建一个这样的别名:
alias ls="ls -h"
这会改变命令ls -l
的运行方式:
drwxr-xr-x 1 joe bob 0 Mar 25 12:06 4.7
drwxr-xr-x 1 joe bob 4096 Mar 25 14:58 Adobe Flash Builder 4.7 Installer
-rw-r--r-- 1 joe bob 92 Mar 20 12:41 Automation-Timer
要像这样跑:
drwxr-xr-x 1 joe bob 0 Mar 25 12:06 4.7
drwxr-xr-x 1 joe bob 4.0k Mar 25 14:58 Adobe Flash Builder 4.7 Installer
-rw-r--r-- 1 joe bob 92 Mar 20 12:41 Automation-Timer
请注意第二个示例中的单位如何显示。
是否可以使用git命令执行此操作?
每当我以交互方式运行git log
时,我希望将其别名为git log --relative-date
。这可能吗?
我知道我可以创建一个新的git命令来执行此操作,但我对此并不特别感兴趣。
答案 0 :(得分:4)
如果我理解正确,我认为你希望git log
总是使用--relative-date而不必传递旗帜 - 你不想要使用{{1}以外的命令本身。
答案是肯定的,这是通过配置文件完成的。
git log
从现在开始,只要您拨打git config --global log.date 'relative'
,就会使用相对日期。
要查看所有可配置选项的完整列表,请查看the man page for git-config
感谢@Saaman提供的链接
答案 1 :(得分:2)
Shell别名不能包含空格(在左侧)并且您不能使用git别名,但您可以改为创建shell函数。
git ()
{
if [[ $1 = log ]]
then
shift
/bin/git log --relative-date "$@"
else
/bin/git "$@"
fi
}
答案 2 :(得分:1)
我发现这样做的最佳解决方法是在.bashrc中执行类似的操作
alias gitl='git log --relative-date'
然后仍然可以像这样运行它:
gitl --graph
将扩展为类似的内容:
git log --relative-date --graph