通过命令行使用引号和管道进行配置别名

时间:2014-02-13 17:48:42

标签: git git-config

我想创建一个配置我所有git别名的sh脚本。一些别名具有管道(|)和双引号(")。我希望在~/.gitconfig文件中看到的输出是:

[alias]
    assume = update-index --assume-unchanged
    unassume = update-index --no-assume-unchanged
    assumed = "!git ls-files -v | grep ^h | cut -c 3-"

但是,运行以下三个命令会产生错误的assumed条目:

# setup git aliases per: http://blog.apiaxle.com/post/handy-git-tips-to-stop-you-getting-fired/
git config --global alias.assume "update-index --assume-unchanged"
git config --global alias.unassume "update-index --no-assume-unchanged"
git config --global alias.assumed '"!git ls-files -v | grep ^h | cut -c 3-"'

第三个别名(assumed)有不需要的反斜杠:

assumed = \"!git ls-files -v | grep ^h | cut -c 3-\"

通过命令行配置别名的正确语法是什么?

1 个答案:

答案 0 :(得分:10)

.gitconfig中不需要双引号。

所以命令是:

git config --global alias.assumed '!git ls-files -v | grep ^h | cut -c 3-'