![嘗試在 Mac OS X 上更新 Git 並卸載舊 Git 失敗](https://rvso.com/image/1466438/%E5%98%97%E8%A9%A6%E5%9C%A8%20Mac%20OS%20X%20%E4%B8%8A%E6%9B%B4%E6%96%B0%20Git%20%E4%B8%A6%E5%8D%B8%E8%BC%89%E8%88%8A%20Git%20%E5%A4%B1%E6%95%97.png)
我正在嘗試在 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 上,最簡單的方法是使用自製的。
- 安裝釀造
- 按照說明進行操作(
brew doctor
將告訴您更新您$PATH
的/usr/local/bin:$PATH
brew install git
不再擔心手動更新,只需brew update && brew upgrade
經常運行即可
為什麼無法安裝現有的:
- Apple 有 Xcode 使用的預設 git 安裝(假設您安裝了 Xcode 或至少安裝了命令列實用程式)
答案2
較短的答案。
無需卸載git
您在 Mac OS X 中看到的/usr/local/git/bin
Xcode $PATH
。~/.bash_profile
export 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/
$PATH
git
因此,無需卸載 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