Mac OS XでGitを更新しようとして古いGitをアンインストールしようとすると失敗する

Mac OS XでGitを更新しようとして古いGitをアンインストールしようとすると失敗する

Mac OS X 10.8.5 (Mountain Lion) で git を更新しようとしています。

この新しいバージョンをダウンロードしたのはこのリンクをダブルクリックしてターミナルに.dmgドラッグしましたuninstall.sh(指示に従ってそこには) を実行して古いバージョンをアンインストールすると、次のメッセージが表示されます。

Git doesn't appear to be installed via this installer.  Aborting

git現在、私のコンピュータにインストールされていることに注意してください。

$ git --version
git version 1.7.9.6 (Apple Git-31.1)
$ which git
/usr/bin/git 

なぜアンインストールできないのですか? どうすればアップデートできますかgit?

答え1

Macでは最も簡単な方法は自家製

  1. brewをインストールする
  2. 指示に従ってくださいbrew doctor$PATH/usr/local/bin:$PATH
  3. brew install git

手動アップデートの心配は無用です。brew update && brew upgrade定期的に実行してください。

既存のものをインストールできない理由:

  • Apple には、Xcode が使用するデフォルトの git インストールがあります (Xcode または少なくともコマンドライン ユーティリティがインストールされていると仮定)

答え2

より短い答え。

gitMac OS X で表示されているXcode をアンインストールする必要はありません。次のように編集して/usr/local/git/bin追加するだけです。$PATH~/.bash_profileexport PATH

export PATH="/usr/local/git/bin:$PATH"

次に、そのファイルを閉じて保存し、次のように入力してターミナル セッションに読み込みます。

source ~/.bash_profile

また、新しくインストールしたものは、既にgitインストールされている Xcode よりも優先してアクセスできるようになります。git

より長い答え。

エラー メッセージを解釈します。

uninstall.shこの問題は、付属のBashスクリプトの内容を見れば理解できます。Mac OS X 用の公式 Git インストーラー パッケージ正確に何が起こるか確認するには、次のコードを実行してください。エラーが発生している先頭近くのコードは次のとおりです。

#!/bin/bash
if [ ! -r "/usr/local/git" ]; then
  echo "Git doesn't appear to be installed via this installer.  Aborting"
  exit 1
fi

行に注意してくださいif [ ! -r "/usr/local/git" ]; then。Bash スクリプトはこのディレクトリ パスの存在を確認しています。

/usr/local/git/

しかし、which gitパス ディレクトリ パスを実行すると、次のようになります。

/usr/bin/ 

これは、公式インストーラがの Mac OS X コア ディレクトリではなくgitに項目をインストールすることを示しています。/usr/local/git//usr/bin/

では、すでに導入されている の他のバージョンは何でしょうか?詳細については、gitの出力を確認してみましょう。git --version

$ git --version
git version 1.7.9.6 (Apple Git-31.1)

わかりますか(Apple Git-31.1)? これは、Apple によってインストールされたことを示しています。 はgitMac OS X のコア セットアップの一部ではないため、これをインストールできる唯一の方法は、Xcode と関連するコマンド ライン バイナリを使用することです。

つまり、 の Xcode バージョンをアンインストールすることはできませんし、アンインストールすべきでもありません。代わりに、ターミナルで のコア Mac OS X バイナリよりも にインストールされたバイナリgitを優先するように設定する必要があります。これは、 の設定を変更することで実行できます。git/usr/local/git/bin//usr/bin/$PATH~/.bash_profile

問題を修正しています。

~/.bash_profileまず、テキスト エディターで開きます。私はnano次のようにして、コマンド ラインで直接これを行うことを好みます。

nano ~/.bash_profile

export $PATHそこに が存在しない場合は、次のような行をファイルに~/.bash_profile追加します。$PATH

export PATH="/usr/local/git/bin:$PATH"

そこに が存在する場合は、その値がシステムのメインより前になるexport $PATHように変更します。区切り文字に注意してください。/usr/local/git/bin$PATH:

次に、ファイルを閉じて保存し、次のように入力してターミナル セッションに読み込みます。

source ~/.bash_profile

ここで次のように入力します:

which git

出力は次のようになります。

/usr/local/git/bin/git

つまり、ターミナルは、バイナリのデフォルト値で他のディレクトリのチェックに進む前に$PATHチェックインするようになります。/usr/local/git/bin/$PATHgit

したがって、の Xcode バージョンをアンインストールしなくても、git公式の (更新された)gitバイナリをダウンロードしてインストールし、Homebrew やその他のものを操作せずに使用できるようになりました。たとえば、私のシステムでは、の現在の出力はgit --version次のようになります。

git version 2.5.3

(Apple Git-31.1)見えません。この調整gitにより、最新かつすぐに使用できる純粋なバージョン番号になりました。$PATH

答え3

インストールしたgitだけでは十分ではありません。は、機能する git リポジトリ フォルダーに 'dgitされている場合にのみ機能することに注意してくださいcd。つまり、./.gitフォルダーが表示され (ヒント:ls -la隠しフォルダーを表示するには を使用します)、git status以下の例のようなものが返されるはずです。

[some_repo]$ git status
On branch master
Your branch is up-to-date with 'origin/prod'.
nothing to commit, working directory clean

ただし、フォルダーが有効な Git リポジトリでない場合は、次のような表示になります。

[~]$ git status
fatal: Not a git repository (or any of the parent directories): .git

関連情報