像git log这样的两个单词命令如何创建别名?

3
有时我会使用像git logapt-get install这样的两个单词命令,并希望添加一个默认参数。例如,大多数情况下,我想要在git log中添加--abbrev-commit参数,在apt-get install中添加-y参数。
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个回答

6
您不能使用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
}

这里只有一件事情不对 - 你需要引用 $@ 的使用(如 "$@"),除非你希望它们像 $* 一样运行。 - Charles Duffy

1

~/.gitconfig 文件中:

[alias]
        cm = commit -am

使用git config命令:
git config --global alias.cm "commit -am"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接