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

JJ *_*kar 8 git git-config

我想创建一个sh配置所有git别名的脚本.一些别名有|pipe(")和doublequotes().我想在我的~/.gitconfig文件中看到的输出是:

[alias]
    assume = update-index --assume-unchanged
    unassume = update-index --no-assume-unchanged
    assumed = "!git ls-files -v | grep ^h | cut -c 3-"
Run Code Online (Sandbox Code Playgroud)

但是,运行以下三个命令会产生错误的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-"'
Run Code Online (Sandbox Code Playgroud)

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

assumed = \"!git ls-files -v | grep ^h | cut -c 3-\"
Run Code Online (Sandbox Code Playgroud)

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

Ale*_*Ten 10

.gitconfig中不需要双引号.

所以命令是:

git config --global alias.assumed '!git ls-files -v | grep ^h | cut -c 3-'
Run Code Online (Sandbox Code Playgroud)

  • 我相信在某些情况下你可能需要双引号...例如,如果你使用函数技巧`"!_(){...}; _"`来创建带参数处理的别名 (3认同)