Ada banyak jawaban untuk pertanyaan ini dan seperti saya, saya bertaruh banyak pembaca yang bingung. Untuk kasus saya, saya juga memiliki persyaratan agar dotfile saya berfungsi pada beberapa platform dengan versi Git yang berbeda. Saya juga tidak alias g=git
tetapi telah g
didefinisikan sebagai suatu fungsi.
Untuk mencapai ini, saya harus menampar jawaban yang berbeda di sini menjadi satu solusi. Meskipun ini mengulangi jawaban yang sudah saya pikir seseorang di kapal saya mungkin menemukan kompilasi ini berguna seperti yang akan saya miliki ketika saya pertama kali datang ke pertanyaan ini.
Ini mengasumsikan penyelesaian Git yang lebih lama dan lebih baru, default Ubuntu, dan brew install git
pada MacOS. Dalam kasus selanjutnya, kompilasi yang sudah selesai dibuat tidak diproses oleh bash (sesuatu yang akan saya diagnosa nanti).
# Alias g to git
g() {
if [[ $# > 0 ]]; then
git "$@"
else
git status -sb
fi
}
# Preload git completion in Ubuntu which is normally lazy loaded but we need
# the __git_wrap__git_main function available for our completion.
if [[ -e /usr/share/bash-completion/completions/git ]]; then
source /usr/share/bash-completion/completions/git
elif [[ -e /usr/local/etc/bash_completion.d/git-completion.bash ]]; then
source /usr/local/etc/bash_completion.d/git-completion.bash
fi
if command_exists __git_complete; then
__git_complete g _git
elif command_exists __git_wrap__git_main; then
complete -o bashdefault -o default -o nospace -F __git_wrap__git_main g
fi