Saat menggunakan git OSX, setelah saya memodifikasi file yang bisa saya lakukan git commit <tab>
, dan itu akan secara otomatis melengkapi nama file dengan yang telah dimodifikasi. Namun, jika saya menginstal versi git yang lebih baru dari homebrew dan saya menggunakannya, fitur itu tidak lagi berfungsi (artinya saya menekan <tab>
dan itu hanya "bertanya" pada file apa saya ingin melakukannya, bahkan termasuk yang tidak memiliki perubahan) ).
Adakah yang bisa menjelaskan mengapa, dan bagaimana mengatasinya? Saya lebih suka menggunakan git homebrew, karena ini lebih mutakhir.
Shell saya zsh, dan tidak menginstal bash-completion
atau zsh-completions
bekerja (bahkan setelah mengikuti petunjuk post-install homebrew).
Juga, setelah menginstal git dengan homebrew katanya
Bash completion has been installed to: /usr/local/etc/bash_completion.d
zsh completion has been installed to: /usr/local/share/zsh/site-functions
Jadi bukankah saya bisa menggunakan salah satunya?
sumber
zsh
dangit
yang Anda gunakan?git
penyelesaian lainnya berfungsi (git co<TAB>
==>git commit
, misalnya)?zsh-completions
tidak senang dengan mac git, meskipun itu berfungsi dengan baik sebelumnya (mungkin diperbarui secara membabi buta ke 0,17.x).Jawaban:
Kamu sedang mencari:
Seperti yang dinyatakan oleh komentar warpc, Anda harus menambahkan yang berikut ini agar Anda
~/.bash_profile
bisa menyelesaikan bash-homebrew:Di atas disebutkan dalam peringatan ketika Anda menginstal rumus bash-completion.
Catatan: jika Anda menggunakan Bash v4 atau yang lebih baru (via
brew install bash
) maka Anda ingin menggunakannyabrew install bash-completion@2
, untuk mengaktifkan penyelesaian tab tambahkan hal berikut~/.bash_profile
seperti yang dijelaskan dalam peringatan:Ekspor tambahan diperlukan untuk git, buruh pelabuhan, youtube-dl, dan penyelesaian lainnya yang mungkin termasuk dalam
$(brew --prefix)/etc/bash_completion.d/
direktori.sumber
brew install git zsh-completions
? Juga, setelah menginstal git dengan homebrew katanyaBash completion has been installed to: /usr/local/etc/bash_completion.d zsh completion has been installed to: /usr/local/share/zsh/site-functions
, jadi tidak bisakah saya menggunakan salah satunya?bash-completion
atauzsh-completions
bekerja (bahkan setelah mengikuti instruksi homebrew setelah menginstal).Penyelesaian tab git ini berfungsi pada OSX tanpa harus memulai ulang terminal Anda:
sumber
&&
. Skrip bash apa pun bisa berupa satu baris seperti itu.brew install
metode. Hanya karena itu berfungsi.Jika ada orang lain yang membuat kesalahan bodoh saya, cobalah
brew install git
. Saya menggunakangit
yang datang dengan Xcode dan tidak menyadari bahwa saya belum pernah menginstal git Homebrew untuk mendapatkan pelengkapan otomatis.sumber
untuk beberapa alasan saya kehilangan file di
$(brew --prefix)/etc/bash_completion
sehingga jawaban yang benar @Graham Perks tidak bekerja untuk sayaItu akhirnya memperbaiki dalam kasus saya adalah:
sumber
Saya memecahkan masalah dengan mencari tahu yang
$(brew --prefix)/etc/bash_completion
dikembalikanPermission denied
saat dieksekusi. Jadi setelah sederhana:Semuanya sekarang berfungsi dengan baik. Saya bertanya-tanya mengapa Homebrew tidak membuat
bash_completion
file dapat dieksekusi saat instalasi.sumber
bash_completion
dimaksudkan sebagaisource
definisi sehingga berada di shell Anda; mengeksekusi tidak akan berpengaruh.Menemukan solusi yang berfungsi. Ini sangat baru (ditulis 16 jam yang lalu, dan dilakukan 2 jam yang lalu), dan itu datang langsung dari homebrew .
brew install git --without-completions
Baru saja mencobanya, dan akhirnya berfungsi sebagaimana dimaksud.
sumber
git
tanpa penyelesaian dapat meningkatkan situasi penyelesaian tidak berfungsi. Saya yakin jawaban Graham Perks ' stackoverflow.com/a/14970926/1199564 harus ditandai sebagai jawaban yang benar.git --without-completions
dan sumberbash-completion.bash
file dari.bash_profile
yang paling mungkin ditimpa mengikuti prosedur standar.brew install git
perbaiki semuanya (tidak perlu - tanpa-penyelesaian). Saya pikir ini juga jawaban yang benar.Saya memiliki masalah yang sama dan bahkan menemukan posting ini pagi ini. Saya memperbaiki masalah dengan memperbarui minuman dengan
brew update
dan menginstal ulang git denganbrew reinstall git
.Saya kemudian diberitahu tentang file lain yang memblokir proses penautan homebrew, dalam kasus saya itu
/usr/local/share/zsh/site-functions/git-completion.bash
. Menghapus file dan menjalankannyabrew link git
menyelesaikan masalah. Mengira itu hanya versi resep buruk yang kami temukan.sumber
git --version
brew reinstall git
dan jugabrew reinstall bash-completion
membuatnya bekerja lagi.Jika Anda memiliki
$BASH_VERSION
<4.1, mis.3.2.57(1)-release
Lanjutkan dengan:Namun, jika Anda ingin
brew install bash
mendapatkan versi,4.4.12(1)-release
Anda dapat menggunakan penyelesaian yang lebih baik dan lebih lengkap di:Perhatikan bahwa beberapa paket (buatan, buruh pelabuhan, tmux) masih akan memasukkan beberapa penyelesaian
$(brew --prefix)/etc/bash_completion.d/
sehingga Anda dapat menambahkan:Akhirnya Anda harus dapat menambahkan skrip penyelesaian git jika karena alasan tertentu cara Anda menginstal git tidak menambahkannya ke salah satu dari mereka:
Anda bisa mendapatkan dan menambahkannya dengan yang di atas.
sumber
Langkah 1: Unduh skrip penyelesaian otomatis:
Langkah 2: Perbarui .bash_profile dan .bashrc
Via https://www.anintegratedworld.com/git-tab-autocomplete-on-osx-10-11-el-capitan/
Jika di atas tidak berhasil, coba https://github.com/bobthecow/git-flow-completion/wiki/Install-Bash-git-completion
sumber
Bagi saya, saya harus meletakkan
ke dalam
.bashrc
(bukan .bash_profile) agar ini berfungsi.".bash_profile dieksekusi untuk shell login, sedangkan .bashrc dieksekusi untuk shell non-login interaktif" - dari Apa perbedaan antara .bash_profile dan .bashrc? Tampak bagi saya bahwa MacOS Sierra tidak mengeksekusi
.bash_profile
ketika membuka jendela terminal baru, hanya.bashrc
.Saya tidak akan memasukkannya ke dalam _bash_profile, karena dengan begitu saya harus reboot / logout agar pembaruan dapat berlaku.
sumber
Ini bekerja untuk saya di Mojave (OSX 10.14.1):
Kemudian tambahkan baris berikut ke ~ / .bash_profile Anda:
sumber
Pada 2019, menggunakan Bash v5, Anda tidak perlu secara eksplisit sumber skrip penyelesaian git bash di
.bash_profile
atau.bashrc
.bashrc
https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash
) dan simpan/usr/local/etc/bash_completion.d/
sebagaigit
Itu dia! Bash akan secara otomatis mengambil file penyelesaian git dan mengaktifkan penyelesaian.
Catatan Sisi: Saya sarankan memasukkan semua perubahan
.bashrc
ini karena ini memastikan bahwa ketika Anda masuk ke shell interaktif (mis. Daripipenv shell
), penyelesaian akan dimuat dengan benar karena bash akan sumber.bashrc
dan BUKAN.bash_profile
.sumber
Ini mungkin ada hubungannya dengan libedit yang digunakan alih-alih readline di Lion.
Coba pasang readline sebelum git.
sumber
Bagi mereka yang sudah memiliki brash-completion diinstal Saya tidak memiliki skrip penyelesaian git yang diinstal dan tidak dapat menemukan keran untuk itu.
Jadi saya menambahkannya secara manual:
curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o $(brew --prefix)/etc/bash_completion.d/git
Perhatikan bahwa Anda harus mengganti nama file dan menghapus ekstensi agar berfungsi.
Jika Anda tidak memiliki penyelesaian atau git diinstal, instal dalam jawaban yang diterima.
brew install git bash-completion
sumber
Jika Anda menggunakan homebrew untuk menginstal git, maka mungkin tidak perlu menginstal apa pun untuk mendukung penyelesaian git. File "git-completion.bash" ada di suatu tempat (milik saya ada di sini: /usr/local/git/contrib/completion/git-completion.bash)
Yang perlu Anda lakukan adalah menemukan file: sudo find / -type f -name "git-completion.bash"
Kemudian cari pathnya di .bash_profile Anda. Sebagai contoh saya perlu menambahkan baris ini ke ~ / .bash_profile saya:
Jangan lupa untuk mencari ~ / .bash_profile Anda atau buka kembali terminal Anda;)
dari: cara mengaktifkan git-tab-completion-bash-mac-os-x
sumber
Saya tahu ini adalah posting lama, tetapi Anda tidak benar-benar perlu menginstal paket tambahan.
Homebrew memberi tahu Anda bahwa ada direktori dengan semua barang yang Anda butuhkan.
Anda bisa menambahkan baris berikut ke Anda
.bash_profile
jika Anda menggunakan Bash:sumber
Mengaktifkan Penyelesaian Otomatis perintah GIT pada MAC-OS Mojave 10.14 Saya adalah seorang pengembang dan menggunakan GIT dari baris perintah sepanjang waktu. Ketika saya mempertimbangkan perspektif pengembangan, saya biasa mengeksekusi banyak perintah menggunakan baris perintah untuk operasi GIT. Sebagian besar waktu sangat menjengkelkan bahwa MAC OS tidak memiliki dukungan otomatis untuk penyelesaian perintah yang sebagian saya dukung. serta saran perintah, yang berarti apa saja perintah yang tersedia untuk karakter yang diketik. Jadi sangat sulit untuk mengetik perintah yang sangat panjang dan sebagian besar tugas yang berulang karena salah ketik. :(
Penyelesaian tab tentu akan lebih cepat dan mudah. Sayangnya, instalasi default git pada beberapa komputer Mac tidak memiliki penyelesaian tab yang diaktifkan.
Jadi saya mencari perbaikan untuk masalah ini dan ada beberapa solusi yang ditemukan dari pencarian web seperti StackOverflow, GitHub dan juga dari media. Sayangnya, solusi itu tidak berhasil untuk saya dan menjadi frustrasi dengan mencoba berbagai solusi berkali-kali.
Saya mencari dalam-dalam dan mencoba berbagai solusi dan untungnya, ini adalah perbaikan yang mudah. Berikut adalah langkah-langkah yang saya kumpulkan dari beberapa posting dan akhirnya berhasil seperti yang diharapkan. Jadi saya berharap untuk berbagi dengan orang lain yang memiliki masalah seperti saya ini.
Jika Anda pergi ke pencarian web dan Anda dapat menemukan banyak solusi yang menyebutkan file bash penyelesaian git. Bahkan panduan GitHub juga. Tapi saya sarankan Anda periksa dulu apakah file git-completion.bash sudah ada di komputer MAC Anda dengan git-core atau yang lainnya yang berasal dari instalasi. Anda dapat menggunakan perintah di bawah ini.
Anda akan mendapatkan hasil di bawah ini. (mungkin ada beberapa perbedaan sesuai dengan konten)
Saya sarankan Anda untuk memilih yang diinstal dari git-core
Jika skrip git-completion.bash tidak ada di mesin Anda, silakan ambil dari yang disediakan di bawah ini dan simpan ke mesin lokal Anda dalam file baru bernama git-completion.bash di / usr / local / etc / direktori bash_completion.d /.
https://git-scm.com/book/en/v1/Git-Basics-Tips-and-Tricks
Jika Anda menggunakan Bash shell, Git dilengkapi dengan skrip penyelesaian otomatis yang bagus yang dapat Anda aktifkan. Unduh langsung dari kode sumber Git di
https://github.com/git/git/blob/master/contrib/completion/git-completion.bash
Jika skrip git-completion.bash ada di mesin Anda, tetapi tidak ada di direktori /usr/local/etc/bash_completion.d/, Anda harus membuat direktori itu dan menyalin file ke dalamnya. Perintah di bawah ini akan melakukan pekerjaan:
Setelah selesai di atas. Skrip git-completion.bash harus ada pada mesin lokal Anda di direktori / usr / local / etc / bash_completion.d /.
Sekarang Anda perlu menyegarkan profil Anda menggunakan perintah di bawah ini. Ini akan memuat file bash Anda yang ditambahkan ke konteks terminal.
Bagus!!! kamu telah melakukannya. Mulai saja jendela terminal dan coba. Cukup ketik "git sta" maka akan muncul saran seperti di bawah ini:
lihat posting GitHub saya di sini:
https://github.com/DIL8654/Enable-Auto-Completion-of-GIT-commads-on-MAC-OS-Mojave
Lihat posting Media saya di sini:
https://medium.com/@dilanka85/enable-auto-completion-of-git-commands-on-mac-os-mojave-10-14
sumber