在終端機中,如何設定自訂警告,以便當我鍵入特定命令(例如
git pull origin master
該命令沒有執行,我得到一個警告輸出,例如
Did you mean git rebase origin/master?
我考慮過創建一個 bash 腳本或簡單地在我的 bash 設定檔中使用別名,但我不確定最好的方法是什麼。
謝謝。
答案1
沒有任何鉤子,pre-pull
但你可能會發現這很有用https://git-scm.com/docs/githooks#_post_merge
如果您不了解的話,一般來說,鉤子都很好。
至於別名,您必須為 建立一個別名git
,就像在.bashrc
or中建立一個函數一樣.bash_aliases
,並檢查參數是否為 pull origin master,如果不是則呼叫 git,否則列印警告。或一個名為 git 的自訂腳本的別名 - 實際上是 git 的包裝腳本。
簡而言之,因為別名不能包含空格,因此別名必須是第一個“單字”又稱命令。
在.bash_aliases
或類似的:
mygit()
{
if [ "$1" = "pull" ] && \
[ "$2" = "origin" ] && \
[ "$3" = "master" ]; then
printf 'Did you mean git rebase origin/master?\n' >&2
return 1
else
git "$@"
fi
}
alias git=mygit
或命名函數git
但在內部呼叫 git:
command git "$@"
代替git "@$"
。
另請注意:
幾乎所有用途,shell 函數都優於別名。