2012-12-03 55 views
3

我可以讓bash假設命令始終是git命令嗎?如何讓bash假設所有命令都是git命令?

我的意思是:

如果我寫push origin master那就執行git push origin master

注意:我會在git bash(Windows環境)中使用它,所以我不需要常規命令(ls,cd等)來工作。

回答

2

你可能想試試這個小git的外殼,而不是:

gitsh() { 
    while read -r -p "gitsh> " -a GITCOMMAND; do 
     git "${GITCOMMAND[@]}" 
    done 
} 

該函數的定義後,一旦運行,它會坐在一個無限循環, 讀取命令行並將其傳遞作爲git命令的選項。

編輯:添加-e選項的read命令,由gniourf_gniourf建議,爲您提供了一個很好的基礎的ReadLine的環境,你可以檢索和編輯的歷史。

+0

這顯然是一個非常好的答案。用'-e'選項來讀''是完美的。 –

+0

非常真實。我經常不使用'-e',所以我沒有考慮它。 – chepner

2

您可以添加常用命令的別名,例如push將變成git push等。此解決方案需要指定您正在使用的所有命令,但不應該破壞任何內容。

0

您可以將名爲push,commit等的腳本添加到PATH中。這樣你的shell就會推送,提交等「命令」。這應該適用於你正在使用的任何shell,而不僅僅是bash。