Bash
如何為 git 創建別名一個ction一種C噸一世○naction命令(包括空格)?
我的大多數別名都是這種形式:
alias p='pwd'
我想給
git commit
它起別名git commit -v
但是嘗試使用空格創建別名會出錯:
$ alias 'git commit'='git commit -v' -bash: alias: `git commit': invalid alias name
不是您問題的直接答案(因為別名只能是一個詞),但您應該
git-config
改用:git config --global alias.civ commit -v
這將創建一個 git 別名,以便
git civ
執行git commit -v
. 不幸的是,AFAIK沒有辦法用 aliases 覆蓋現有的 git 命令。但是,您始終可以選擇一個合適的別名作為替代。
你說的是一個包含空格的命令,但這裡是命令
git
,那裡沒有空格。要呼叫git commit命令,您需要編寫它
git\ commit ... 'git commit' ... "git commit" ...
通常命令的名稱中沒有空格,因為在 shell 中呼叫它們很麻煩,所以我認為你不會在系統上找到這樣的命令。
csh、tcsh 或 zsh 將允許您為上述任何一個別名,但不能為 bash 或 ksh(雖然 pdksh 允許但您不會讓您使用它們)。在 zsh 中:
alias "'git commit'=git commit -v" 'git commit' ...
將使
git command
命令(僅當呼叫'git command'
(使用單引號)時)成為帶有和參數的git
命令的別名。我猜不是你要找的東西。commit``-v
因為
alias
can only alias commands,所以你可以在這裡給git
命令加上別名,並且你需要將它的別名為在其參數列表中的“commit”之後插入“-v”的東西。最好是使用@jw013 的解決方案,但如果由於某種原因你不能或不會,而不是使用別名,你可以使用一個函式來完成這項工作:git() { if [ "$1" = commit ]; then shift set -- commit -v "$@" fi command git "$@" }