自作のgitをインストールして使用できない


16

homebrewでインストールしたばかりの最新バージョンのgitを使用しようとすると、本当に奇妙な問題が発生します。which githomebrewインストールを指示していgitますが、呼び出すとOS Xでインストールされた元のバージョンが返されます。

最初にチェックして、自分がいた元のバージョンを確認しました。

[user@home ~]$ git --version
git version 1.8.5.2 (Apple Git-48)

それから、homebrewで最新バージョンをインストールしました。

[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

うまくいったようです!正しいgitを指していることを確認してください

[user@home ~]$ which git
/usr/local/bin/git

良いはずですよね?そんなに早くない

[user@home ~]$ git --version
git version 1.8.5.2 (Apple Git-48)

それは変だ。私は本当に正しいgitを指しているのですか?

[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

確かにそれのように見えます。手動で呼び出すと動作します

[user@home ~]$ /usr/local/Cellar/git/2.0.0/bin/git --version
git version 2.0.0

しかしではない git

[user@home ~]$ which git
/usr/local/bin/git
[user@home ~]$ git --version
git version 1.8.5.2 (Apple Git-48)

これを引き起こしている可能性についてのアイデアはありますか?

編集:それを解決しました。source .bashrcそれを修正しました。なぜwhich私に正しい実行可能ファイルを返すのかについてはまだ興味がありますが、誰かがそれを説明できるなら、それは呼び出されません。


問題が何であるか正確にはわかりませんが、の現在の値を見てみたいと思われるかもしれません$PATH
ゼフアイゼンバーグ14

3
インストールしたgitのすべてのバージョンを見たい場合は、-> which -a git-(どのgit、最初に見つかったパスのパスをPATH変数で返す)を使用して、PATHにあるパスを確認します。 -> echo $ PATH
konqui 14

回答:


25

シェルは、$PATH変数内で実行可能ファイルが見つかったパスのキャッシュを保持します。シェルの起動時に後者が存在しなかったため、キャッシュ/usr/bin/gitではなくキャッシュされ/usr/local/bin/gitました。hash -r現在の端末からBashで実行すると、このキャッシュがクリアされ、最初に見つかったインスタンスが$PATH実行されるはずです。


hash -r私のために働いた
メタルギアソリッド

5

私はまったく同じ問題を抱えていました。これが私の解決策です。

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

その後は完了しますが、実行時に変更を確認することはできませんgit --version。ログアウトしてからログインし直して、git --versionもう一度実行してください。


7
新しいターミナルウィンドウを開くだけで十分です。または、を呼び出すこともできますsource ~/.bash_profile
ダニエルB 14

これらの手順はまさに私が必要としたものであり、最新バージョンのgitを使用してシステムを設定するのに役立ちました。また、git-scm.comからダウンロードした別のgitのコピーを発見したため、uninstall.shスクリプトを実行して削除しました。ファングとイェンスに感謝します!
マイケルシーバー

手順をありがとう。私にとっては、最後のechoコマンドを実行せずにgit --versionを自動的に使用できました。
マイケルフルトン


-1

私の問題は、Mac GitHubアプリがインストールされていることでした。/usr/local/bin/gitHomebrewバージョンではなく、アプリのバージョンのgitを指していました。GitHubアプリをアンインストールすると、問題が解決しました。


-1

homebrewを使用してマシンのgitを更新する場合は、次の手順に従います。

brew doctor

提案された問題を修正する

brew update homebrewの新しいバージョンが利用可能な場合

brew install git gitの最新バージョンをダウンロードしてインストールする

実行brew doctorすると、それがわかります

警告:セラーにリンクされていない樽があります

実行するbrew link gitとエラーになります

エラー:bin / gitをシンボリックリンクできませんでした

ターゲット/ usr / local / bin / gitはすでに存在します。あなたはそれを削除したいかもしれません:

rm '/ usr / local / bin / git'

brew link --overwrite git シンボリックリンクを上書きし、インストールされているgit brewを指すようにします。


-1

ターミナルを開きます。このコマンドを入力してください。

sudo nano /etc/paths

次に、ファイルの先頭に次のパスをコピーします。

/usr/local/git/bin

Ctrl + Xを押して保存します。

小切手 git --version

私のために働く。


そのようなファイルはありませんgit/bin。という意味bin/gitですか?また、これをパスに追加する必要はありません- /usr/local/bin既にそこにあります。
slhck
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.