为git log这样的双字命令创建别名?

时间:2013-07-18 18:19:28

标签: bash alias

有时我会有一个像git logapt-get install这样的双字命令,我想添加一个默认参数。例如,大多数情况下,我想将--abbrev-commit参数添加到git log,将-y参数添加到apt-get install

git log --abbrev-commit
apt-get install --abbrev-commit

但是,我似乎无法创建一个涉及两个单词命令的别名:

$ alias 'git log'='git log --abbrev-commit'
bash: alias: `git log': invalid alias name
 $ alias git log='git log --abbrev-commit'
bash: alias: git: not found

我该怎么做?

2 个答案:

答案 0 :(得分:5)

你不能用shell别名做你正在尝试的事情。这不是他们的工作方式。您可以使用git配置处理的git。运行:

git config --global log.abbrevCommit true

或者,编辑~/.gitconfig并添加:

[log]
    abbrevCommit = true

如果您希望拥有每个存储库行为而不是编辑全局配置,则可以删除--global标记或编辑项目的.git/config,而不是全局配置。

apt-get一个会更难。但是,您可以编写一个bash函数来执行此操作。像(未经测试)的东西:

apt-get() {
    if [[ $1 == "install" ]]
    then
        command apt-get -y "$@"
    else
        command apt-get "$@"
    fi
}

答案 1 :(得分:2)

~/.gitconfig内部:

[alias]
        cm = commit -am

使用git config命令:

git config --global alias.cm "commit -am"