2013-04-17 45 views
2

在bash,我可以這樣創建別名:可能在GIT中創建別名?

alias ls="ls -h" 

這從運行這樣的改變命令ls -l

drwxr-xr-x 1 joe bob  0 Mar 25 12:06 4.7 
drwxr-xr-x 1 joe bob  4096 Mar 25 14:58 Adobe Flash Builder 4.7 Installer 
-rw-r--r-- 1 joe bob  92 Mar 20 12:41 Automation-Timer 

要在運行這樣的:

drwxr-xr-x 1 joe bob  0 Mar 25 12:06 4.7 
drwxr-xr-x 1 joe bob  4.0k Mar 25 14:58 Adobe Flash Builder 4.7 Installer 
-rw-r--r-- 1 joe bob  92 Mar 20 12:41 Automation-Timer 

注意如何這些單位顯示在第二個示例中。


是否有可能使用git命令做到這一點?

每當我交互式運行git log時,我希望它被別名爲git log --relative-date。這可能嗎?

我知道我可以創建一個新的git命令來做到這一點,但我並不特別感興趣。

回答

4

如果我理解正確,我認爲你想要git log始終使用 - 相對日期而不必通過標誌 - 並且你不想使用git log本身以外的命令。

答案是肯定的,這是通過配置文件完成的。

git config --global log.date 'relative' 

從現在開始任何時候你打電話給git log它會使用相對日期。

要查看所有可配置選項的完整列表,看看the man page for git-config

感謝@Saaman的鏈接

+0

嗯,這是一個很好的答案。你是如何找到這個或者你尋找什麼的?是否有可以在日誌上設置的所有「全局」事物的列表? – sixtyfootersdude

+1

您可以在這裏找到完整的變量列表:https://www.kernel.org/pub/software/scm/git/docs/git-config.html。所有這些變量可以全局設置,也可以按用戶設置,或者只設置一個存儲庫。 – Saaman

+0

@sixtyfootersdude這是否完全回答你的問題,我不確定你是否也想在git wil'ls'中做一些事情,或者你只是用它作爲使用別名來修改命令的例子。 – eddiemoya

2

Shell別名不能包含空格(在左側),並且不能使用git別名,但可以改爲創建shell函數。

git() 
{ 
    if [[ $1 = log ]] 
    then 
    shift 
    /bin/git log --relative-date "[email protected]" 
    else 
    /bin/git "[email protected]" 
    fi 
} 
+0

+1這是一個很好的方式,通過使用bash shell這樣做。有點在不可維護的一面,但很好的答案。 – sixtyfootersdude

1

我發現要做到這一點,最好的解決辦法是做這樣的事情在.bashrc中

alias gitl='git log --relative-date' 

它是那麼仍然可以像這樣運行:

gitl --graph 

這將被擴展到這樣的事情:

git log --relative-date --graph