2

在 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 命令执行此操作?

每当我以交互方式运行 agit log时,我希望它别名为git log --relative-date. 这可能吗?

我知道我可以创建一个新的 git 命令来执行此操作,但是我对此并不是特别感兴趣。

4

3 回答 3

4

如果我对您的理解正确,我认为您希望git log始终使用 --relative-date 而不必传递标志-并且您不想使用除git log自身以外的命令。

答案是肯定的,这是通过配置文件完成的。

git config --global log.date 'relative'

从现在开始,您调用git log它的任何时间都将使用相对日期。

要查看所有可配置选项的完整列表,请查看git-config 的手册页

感谢@Saaman 提供链接

于 2013-04-17T21:00:01.683 回答
2

Shell 别名不能包含空格(在左侧),并且您不能使用 git 别名,但您可以创建一个 shell 函数。

git ()
{
  if [[ $1 = log ]]
  then
    shift
    /bin/git log --relative-date "$@"
  else
    /bin/git "$@"
  fi
}
于 2013-04-17T18:51:27.270 回答
1

我发现这样做的最佳解决方法是在 .bashrc 中执行类似的操作

alias gitl='git log --relative-date'

然后仍然可以像这样运行它:

gitl --graph

这将被扩展为这样的东西:

git log --relative-date --graph
于 2013-04-17T19:01:04.173 回答