我正在嘗試創建一個簡單的 bash 別名以在 MacOs 中使用我的分支名稱進行提交。例如,如果我的分支是 CS-12,我通常會提交如下:
git commit /file/location/myfile -m "CS-12 my message goes in here"
所以我試圖創建一個只接收檔案名和訊息的別名,即:
gcm /file/location/myfile "my message goes in here"
我有以下內容,但它不起作用:
alias gcm="echo git commit $1 -m \"$(current_branch) - $2\""
current_branch函式在哪里:
function current_branch() {
ref=$(git symbolic-ref HEAD 2> /dev/null) || \
ref=$(git rev-parse --short HEAD 2> /dev/null) || return
echo ${ref#refs/heads/}
}
這確實有效。
運行別名的輸出:
gcm src/pages/register/Register.js "aasdasd asdasd"
正在給我回報:
git commit -m master - src/pages/register/Register.js aasdasd asdasd
知道我做錯了什么嗎?Bash 不是我的專業領域。謝謝
uj5u.com熱心網友回復:
轉義的引號被 '剝離' alias,因此您需要再次轉義它們:
alias x="echo \\\"foo\\\""
x
"foo"
uj5u.com熱心網友回復:
別名不帶引數。只寫一個函式:
gcm() { git commit "$1" -m "$(current_branch) - $2"; }
請注意,實際上不需要別名,您也不??應該使用它們。至少從 1996 年開始,bash 手冊頁就宣告:“對于幾乎所有目的,別名都被 shell 函式取代。”
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/391310.html
