【问题标题】:Creating an alias for a two word command like git log?为 git log 之类的两个字命令创建别名?
【发布时间】:2013-07-17 20:29:06
【问题描述】:

有时我有一个像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

我该怎么做?

【问题讨论】:

    标签: bash alias


    【解决方案1】:

    你不能用 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
    }
    

    【讨论】:

    • 这里只有一件事是错误的——你需要引用你的$@ 使用(如"$@"),除非你希望它们的行为方式与$* 相同。
    【解决方案2】:

    内部~/.gitconfig

    [alias]
            cm = commit -am
    

    使用 git config 命令:

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

    【讨论】:

      猜你喜欢
      • 2013-05-17
      • 2013-09-23
      • 1970-01-01
      • 2021-12-30
      • 2020-04-21
      • 1970-01-01
      • 1970-01-01
      • 2012-04-18
      • 2018-04-04
      相关资源
      最近更新 更多