2016-05-14 84 views
-1

我在mac環境中使用一些別名,它非常有用。但是我想在使用別名的工作中做出更多的提振。現在我想創建添加文件,提交併推送別名。所以,我創建了一個別名,但它不起作用; 下面是代碼git的參數別名

alias track="trackFunction() { git add .; git commit %@; git push}" 

的輸出是這樣的:

error: pathspec '%@' did not match any file(s) known to git.

所以,我希望你指導我在這,因爲我對所有這些東西,新的工作。

回答

2

當你打電話的別名,你要執行的trackFunction內容。但是你定義的是「當我呼叫跟蹤時,定義功能trackFunction」。

由於您希望您的別名接受的參數,你可以使用這個(見本answer about parameters for alias):

trackFunction() { git add .; git commit "[email protected]"; git push; } 
alias track=trackFunction 

但既然你已經可以命名功能track,你並不真的需要一個別名,你可以將函數定義放入您的.bashrc.profile文件中。作爲便箋,我不知道您的預期工作流程是什麼,但您可能需要在git push之前包含git pull以避免拒絕。

+1

git的添加或git的承諾可能會失敗,所以我會做所有的條件:'FUNC(){git的補充。 && git commit「$ @」&& git push; }' –

+0

我寫這些命令只是爲了舉例,不是爲了真實。 –

+0

@glennjackman我添加「&&」而不是工作太:( –

2

我認爲你只是在git commit %@一個錯字。它應該是[email protected]而不是%@,因此您可以傳遞參數-m 'Commit message'

我也覺得寫一個函數是沒有必要在這裏。我通過調用track -m 'Commit message'在Linux機器上成功測試了alias track="git add .; git commit"

+0

別名並非偶然你的別名曾使用參數的佔位符,所以你的別名擴展爲'git的補充; git的承諾$ @ -m「message'' 。顯然,當前的shell有一個空的參數設置你只是想'別名軌道=。「混帳添加。git的承諾」' –

+0

@glennjackman我曾嘗試你和dendress說什麼,但沒有工作 –

+1

「沒有工作。 「是對問題最糟糕的描述,究竟發生了什麼,以及它與預期發生的不同之處。編輯你的問題並向我們展示證據(從終端上剪切並粘貼) –