可以在GIT中创建别名吗?

时间:2013-04-17 18:36:09

标签: git alias

在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命令来执行此操作,但我对此并不特别感兴趣。

3 个答案:

答案 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