Saya menghadapi masalah yang sangat aneh ketika saya mencoba menggunakan git versi terbaru yang baru saja saya instal melalui homebrew. which git
menunjuk saya ke instalasi homebrew, tetapi panggilan git
mengembalikan versi asli yang diinstal dengan OS X.
Saya memeriksa dulu untuk melihat versi asli saya.
[user@home ~]$ git --version
git version 1.8.5.2 (Apple Git-48)
Kemudian saya pergi ke homebrew untuk menginstal versi terbaru.
[user@home ~]$ brew install git
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/git-2.0.0.mavericks.bottle.2.tar.gz
######################################################################## 100.0%
==> Pouring git-2.0.0.mavericks.bottle.2.tar.gz
==> Caveats
The OS X keychain credential helper has been installed to:
/usr/local/bin/git-credential-osxkeychain
The 'contrib' directory has been installed to:
/usr/local/share/git-core/contrib
Bash completion has been installed to:
/usr/local/etc/bash_completion.d
zsh completion has been installed to:
/usr/local/share/zsh/site-functions
==> Summary
🍺 /usr/local/Cellar/git/2.0.0: 1324 files, 31M
Sepertinya itu berhasil! Periksa apakah itu menunjuk ke git yang benar
[user@home ~]$ which git
/usr/local/bin/git
Harusnya bagus, bukan? Tidak secepat itu
[user@home ~]$ git --version
git version 1.8.5.2 (Apple Git-48)
Itu aneh. Apakah saya benar-benar menunjuk ke git yang tepat?
[user@home ~]$ ls -l /usr/local/bin/git
lrwxr-xr-x 1 user group 27 Jul 3 15:54 /usr/local/bin/git -> ../Cellar/git/2.0.0/bin/git
Tentu terlihat seperti itu. Bekerja ketika saya menyebutnya secara manual
[user@home ~]$ /usr/local/Cellar/git/2.0.0/bin/git --version
git version 2.0.0
Tapi tidak sama git
[user@home ~]$ which git
/usr/local/bin/git
[user@home ~]$ git --version
git version 1.8.5.2 (Apple Git-48)
Adakah gagasan tentang apa yang menyebabkan hal ini?
EDIT: Selesaikan itu. source .bashrc
memperbaikinya. Masih penasaran mengapa which
akan mengembalikan saya executable yang benar tetapi tidak akan dipanggil, jika ada yang bisa menjelaskan itu.
$PATH
.Jawaban:
Shell memelihara cache jalur di mana executable ditemukan dalam
$PATH
variabel. Jadi itu di-cache/usr/bin/git
daripada/usr/local/bin/git
, karena yang terakhir tidak ada ketika shell Anda mulai. Berjalanhash -r
di Bash dari terminal Anda saat ini akan menghapus cache ini, maka instance pertama yang ditemukan$PATH
adalah yang dijalankan.sumber
hash -r
bekerja untuk sayaSaya mendapat masalah yang sama persis. Ini solusinya.
Setelah itu selesai, namun Anda tidak dapat melihat perubahan apa pun saat dijalankan
git --version
. Cukup keluar dan masuk kembali, jalankangit --version
lagi.sumber
source ~/.bash_profile
.Saya memiliki masalah yang sama. Saya hanya me-restart Terminal saya.
sumber
Masalah saya adalah saya menginstal aplikasi Mac GitHub.
/usr/local/bin/git
menunjuk ke versi git aplikasi, bukan versi Homebrew. Menghapus instalan aplikasi GitHub memperbaiki masalah bagi saya.sumber
Saat menggunakan homebrew untuk memperbarui git di mesin Anda, ikuti langkah-langkah berikut:
brew doctor
Perbaiki masalah yang disarankan
brew update
jika ada versi terbaru dari homebrew tersediabrew install git
untuk mengunduh dan menginstal versi terbaru gitberlari
brew doctor
akan membuat Anda tahu itumengeksekusi
brew link git
akan menghasilkan kesalahanbrew link --overwrite git
untuk menimpa symlink dan menunjuk ke git brew yang diinstal.sumber
Buka terminal Anda. Masukkan perintah ini.
sudo nano /etc/paths
Kemudian salin jalur berikut di atas file.
/usr/local/git/bin
Tekan control + X dan simpan.
Memeriksa
git --version
Bekerja untukku.
sumber
git/bin
. Apakah yang Anda maksudbin/git
? Juga, tidak perlu menambahkan ini ke jalur Anda -/usr/local/bin
sudah ada di sana.