嘗試在 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. 安裝釀造
  2. 按照說明進行操作(brew doctor將告訴您更新您$PATH/usr/local/bin:$PATH
  3. brew install git

不再擔心手動更新,只需brew update && brew upgrade經常運行即可

為什麼無法安裝現有的:

  • Apple 有 Xcode 使用的預設 git 安裝(假設您安裝了 Xcode 或至少安裝了命令列實用程式)

答案2

較短的答案。

無需卸載git您在 Mac OS X 中看到的/usr/local/git/binXcode $PATH~/.bash_profileexport PATH

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

然後關閉並保存該文件,並將其加載到您的終端會話中,如下所示:

source ~/.bash_profile

git與已安裝的 Xcode 相比,您可以優先存取新安裝的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/ 

這表明官方安裝程序將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 安裝的。由於git它不是 Mac OS X 核心設定的一部分,因此安裝它的唯一方法是透過 Xcode 和相關的命令列二進位。

簡而言之,您不能(也不應該)嘗試卸載 Xcode 版本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 repo 資料夾時,這才git有效。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

相關內容