Tidak dapat menggunakan homebrew yang diinstal git

16

Saya menghadapi masalah yang sangat aneh ketika saya mencoba menggunakan git versi terbaru yang baru saja saya instal melalui homebrew. which gitmenunjuk saya ke instalasi homebrew, tetapi panggilan gitmengembalikan 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 .bashrcmemperbaikinya. Masih penasaran mengapa whichakan mengembalikan saya executable yang benar tetapi tidak akan dipanggil, jika ada yang bisa menjelaskan itu.

Matt Stone
sumber
Tidak yakin persis apa masalahnya, tetapi sepertinya Anda mungkin ingin melihat nilai saat ini $PATH.
Zev Eisenberg
3
jika Anda ingin melihat semua versi git yang telah Anda instal gunakan -> which -a git - (yang git, hanya memberi Anda kembali jalur yang pertama ditemukan dalam variabel PATH Anda) untuk melihat jalur apa yang Anda miliki di PATH Anda melakukan -> echo $ PATH
konqui

Jawaban:

25

Shell memelihara cache jalur di mana executable ditemukan dalam $PATHvariabel. Jadi itu di-cache /usr/bin/gitdaripada /usr/local/bin/git, karena yang terakhir tidak ada ketika shell Anda mulai. Berjalan hash -rdi Bash dari terminal Anda saat ini akan menghapus cache ini, maka instance pertama yang ditemukan $PATHadalah yang dijalankan.

realgeek
sumber
hash -rbekerja untuk saya
metal gear solid
5

Saya mendapat masalah yang sama persis. Ini solusinya.

brew uninstall git
# make sure everything is alright, maybe brew will give you some hint
brew doctor
brew update  
brew install git
# magic happen, brew will give you hint /usr/bin occurs before /usr/local/bin
# and recommend you run following command
brew doctor
echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.bash_profile

Setelah itu selesai, namun Anda tidak dapat melihat perubahan apa pun saat dijalankan git --version. Cukup keluar dan masuk kembali, jalankan git --versionlagi.

Fang
sumber
7
Membuka jendela Terminal baru sudah cukup. Atau, seseorang juga bisa menelepon source ~/.bash_profile.
Daniel B
Langkah-langkah ini persis apa yang saya butuhkan, dan mereka membantu saya mengatur sistem saya menggunakan git versi terbaru. Saya juga menemukan salinan git lain yang telah saya unduh dari git-scm.com, jadi saya menjalankan skrip uninstall.sh untuk menghapus yang itu. Saya baik-baik saja sekarang, terima kasih banyak kepada Fang dan Jens!
Michael Sheaver
Terima kasih untuk langkah-langkahnya. Bagi saya, saya secara otomatis dapat menggunakan git --version tanpa menjalankan perintah gema terakhir.
Michael Fulton
0

Saya memiliki masalah yang sama. Saya hanya me-restart Terminal saya.

mesin serial
sumber
-1

Masalah saya adalah saya menginstal aplikasi Mac GitHub. /usr/local/bin/gitmenunjuk ke versi git aplikasi, bukan versi Homebrew. Menghapus instalan aplikasi GitHub memperbaiki masalah bagi saya.

Ben
sumber
-1

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 tersedia

brew install git untuk mengunduh dan menginstal versi terbaru git

berlari brew doctorakan membuat Anda tahu itu

Peringatan : Anda memiliki tong yang tidak terhubung di Cellar Anda

mengeksekusi brew link gitakan menghasilkan kesalahan

Kesalahan: Tidak dapat mengaitkan bin / git

Target / usr / local / bin / git sudah ada. Anda mungkin ingin menghapusnya:

rm '/ usr / local / bin / git'

brew link --overwrite git untuk menimpa symlink dan menunjuk ke git brew yang diinstal.

Chekkan
sumber
-1

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.

Tuan Pi
sumber
Tidak ada file seperti itu git/bin. Apakah yang Anda maksud bin/git? Juga, tidak perlu menambahkan ini ke jalur Anda - /usr/local/binsudah ada di sana.
slhck