Di mesin Linux saya, saya memiliki autocomplete untuk cabang dengan Git.
[Catatan kita berbicara tentang penyelesaian cabang git, bukan penyelesaian bash (mis. Perintah, file, dll). Jadi BUKAN jawaban Lane sama sekali]
Misalnya saya bisa mengetik git checkout
+ TABdan mendapatkan daftar cabang.
Atau saya bisa mengetik git checkout feb*
+ TABuntuk mendapatkan semua cabang yang dimulai dengan "feb".
Bagaimana saya bisa mendapatkan fungsionalitas ini di Mac?
Saya mencoba men-download dan menjalankan bash-completion/bash_completion
dan bash-completion/bash_completion.sh.in
tapi tidak ada sukacita. Yang pertama memberi pesan kesalahan tentang declare: -A invalid_option
. Yang kedua tidak memberikan kesalahan. Ketika saya git checkout
+ TABmeskipun saya masih mendapatkan daftar file di direktori, bukan cabang. Saya di root proyek.
Pengisian otomatis untuk direktori dan perintah bash berfungsi dengan baik, jadi khusus untuk Git.
sumber
Models
folder saya ketika saya menekanm
Tab
untuk membuatnya selesai otomatismaster
.source ~/.bash_profile
setelah menempelkan kode. Restart terminal juga akan melakukan hal yang sama.git
tetapi standar Applegit
)brew install git
dan restart terminal bagi mereka yang menghadapi kesalahan aneh sepertigit checunknown option: --list-cmds=list-mainporcelain,others,nohelpers,alias,list-complete,config usage: git [--version] [--help] [-C <path>] [-c <name>=<value>] [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path] [-p | --paginate | --no-pager] [--no-replace-objects] [--bare] [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>] <command> [<args>]
Beberapa orang lebih suka menggunakan manajer paket untuk mengotomatiskan penginstalan, pembaruan, dan konfigurasi paket Mac OS. Saya penggemar paket manajer, dan saya pikir Homebrew adalah manajer paket terbaik untuk Mac OS (beberapa orang akan mengatakan itu adalah manajer paket Mac OS de-facto).
Setelah Anda menginstal Homebrew, Anda cukup menginstal git bersamaan dengan bash-completion dengan
brew install git bash-completion
.Anda kemudian harus memasukkan yang berikut ini di
~/.bash_profile
:(Catatan: Jika instalasi ini gagal dengan kesalahan 404, dan Anda sudah menginstal git, hapus saja bagian git dari instalasi buatan ini)
Info lebih lanjut tentang cara menginstal git dan penyelesaian-bash dengan brew di sini.
sumber
git
dan menambahkanbash-completion
sama sekali tidak sama dengan menambahkan..git-completion.bash
Mereka adalah program yang berbeda dan mereka melakukan hal-hal yang sangat berbeda - satu melakukan bash command autocompletion dan yang lainnya git command autocompletion dan 'nair the twain akan bertemu;)~/.bash_profile
?Jalankan ini di terminal:
Lalu, lakukan ini:
Tambahkan baris ini:
Itu saja. Ini berhasil untuk saya.
sumber
~/.bash_profile
file tidak ada. Tidak apa-apa cukup buat file dan tempatkanif
skrip itu di sana dan simpan. Muat ulang shell Anda setelah itu dan itu akan berhasil.git
dangit-completion.bash
sudah datang dengan alat baris perintah macOS (xcode-select --install
). Untuk mengaktifkan bash autocomplete, tambahkan ini ke~/.bash_profile
.Ini juga akan memungkinkan pelengkapan otomatis untuk cabang git.
sumber
Inilah yang membingungkan sebagian dari Anda: Anda memiliki brew atau port yang diinstal, tetapi Anda menggunakan sistem git
/usr/bin/
. Untuk memeriksa ini:Jika Anda melihat
/usr/bin/git
maka salah satu minuman tidak dikonfigurasi dengan benar, atau Anda belum menginstal git melalui minuman.Jika Anda menginstal git via brew, maka mengaktifkan bash untuk brew juga akan mengaktifkan bash untuk git. Ini karena
/usr/local/etc/bash_completion
sebenarnya sumber semuanya/usr/local/bash_completion.d
, dan paket pembuatan untuk git menginstal skrip penyelesaian git di sana.sumber
Anda dapat menginstal bash dan git dari MacPorts dengan opsi "bash_completion" diaktifkan. Ini mungkin cara termudah untuk mempertahankan git dan kelengkapan terbaru.
http://denis.tumblr.com/post/71390665/adding-bash-completion-for-git-on-mac-os-x-snow-leopard
Untuk menginstal MacPorts: http://www.macports.org/install.php/
informasi tambahan
Sedangkan untuk mencari pengaturan penyelesaian pada sistem Linux Anda, lihat di /etc/bash_completion.d/git (ini adalah file yang panjang). Menyalin itu dengan sendirinya mungkin tidak akan berhasil, karena dirancang untuk bersumber dari kerangka penyelesaian melalui / etc / bash_completion (yang bersumber dari /etc/profile.d/bash_completion.sh; file di / etc / profile .d bersumber dari / etc / profile).
sumber
Jika penyelesaian git Anda sebagian rusak, bahkan setelah sumber
https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash
, Anda mungkin hanya perlu memperbarui versi git Anda.Sebagai contoh, ketika saya mengetik
git check
+TAB
, itu akan melengkapi secara otomatisgit checkout
. Tetapi ketika saya mengetikgit checkout
+TAB
, itu tidak menampilkan daftar cabang, hanyaHEAD
.Perbaikan untuk saya adalah memperbarui
git
versi saya . Saya menggunakan 2.7.0, yang tampaknya tidak kompatibel dengan yang terbarugit-completion.bash
. Saya berlaribrew upgrade git
, yang memperbaruinya menjadi 2.13.0, dan sekarang ia dengan benar melengkapi nama cabang saya.sumber
brew upgrade git
danbrew link git
(dengan menimpa diaktifkan)update
menjadiupgrade
.Sejauh ini, referensi terbaik yang saya temukan untuk menyelesaikan masalah ini adalah di SpinDance , oleh Connor Livingston :
sumber
Mencoba dan berfungsi dengan baik untuk cabang tetapi ketika Anda
git st
+tab
maka itu menunjukkan kesalahan seperti iniMencari di internet dan menemukan bahwa
--list-cmds
di.git-completion.bash
dalam versi terbaru dari git dan di mac saya versi git adalah2.17.2
Ini solusinya
Solusi 1
git --version
perintahLalu masukkan nomor versi yang sama di url seperti yang saya lakukan
Kemudian ikuti langkah-langkah yang sama seperti pada jawaban atas, masukkan kode di bawah ini
~/.bash_profile
Solusi 2
Anda harus mencoba untuk memperbarui versi git ke yang terbaru lalu akan berfungsi.
sumber
Instal oh-my-zsh dan atur zsh sebagai shell default Anda dan terima kasih saya nanti :)
sumber
Sebagian besar pengguna akan
git
menginstal sebagai bagian dari alat baris perintah xcode di/usr/bin/git
dan aturan penyelesaian bash untuk git akan tersedia di/Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bash
.Dalam hal ini tidak perlu menginstal git dari Homebrew atau aturan penyelesaian sumber git dari raw.githubusercontent.com. Cukup buat symlink sebagai berikut:
Catatan: pastikan Anda telah menginstal dan mengonfigurasi
bash-completion
paket dari Homebrew.sumber
Temukan
.bashrc
file Anda .Buka dan tambahkan baris ini di bagian bawah:
source /etc/bash_completion.d/git
sumber
/etc/bash_completion.d/
folder apa pun , pada sistem yang relatif baru (OSX 10.10.3)./etc/bash_completion.d/git
? Itu akan membuat jawaban Anda lebih berharga.