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

Cor*_*ein 1 bash alias

有时我有两个单词命令,git log或者apt-get install我想添加一个默认参数.例如,大多数时候我想将--abbrev-commit参数添加到my git log,并将-y参数添加到apt-get install.

git log --abbrev-commit
apt-get install --abbrev-commit
Run Code Online (Sandbox Code Playgroud)

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

$ 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
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

Car*_*rum 5

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

git config --global log.abbrevCommit true
Run Code Online (Sandbox Code Playgroud)

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

[log]
    abbrevCommit = true
Run Code Online (Sandbox Code Playgroud)

如果您更喜欢使用每个存储库行为而不是编辑全局配置,则可以删除--global标记或编辑项目.git/config而不是全局配置.

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

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