2013-07-18 52 views
1

有時我有一個像git logapt-get install這樣的兩字命令,我想添加一個默認參數。例如,大多數時候我想將--abbrev-commit參數添加到我的git log,並將-y參數添加到apt-get install爲git log這樣的雙字命令創建一個別名?

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 

我該怎麼辦呢?

回答

5

你不能用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 "[email protected]" 
    else 
     command apt-get "[email protected]" 
    fi 
} 
+0

只有一件事錯在這裏 - 你需要引用你的'$ @'用途(如'「$ @」'),除非你想他們的行爲方式'$相同*'。 –

+0

感謝您的修復。 –