尝试在Mac OS X上更新Git并卸载旧的Git失败


0

我正在尝试在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

Answers:


2

在Mac上,最简单的方法是使用自制软件

  1. 安装brew
  2. 请按照说明进行操作(brew doctor将告诉您$PATH使用/usr/local/bin:$PATH
  3. brew install git

不必担心手动更新,只需brew update && brew upgrade经常运行

为什么您不能安装现有的一个:

  • Apple具有Xcode使用的默认git安装(假定您已安装Xcode或至少安装了命令行实用程序)

该答案的关键点是关于$PATH需要更改的要点2 。无需调整Homebrew,只需调整其$PATH值即可解决此问题。请参阅我的答案以获取更多详细信息
JakeGould

0

答案较短。

无需卸载git在Mac OS X中看到的Xcode 。只需通过编辑添加/usr/local/git/bin到您的Xcode中即可,如下所示:$PATH~/.bash_profileexport PATH

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

然后关闭并保存该文件,并将其加载到您的终端会话中,例如通过键入以下命令:

source ~/.bash_profile

与您已经拥有git的Xcode相比,您将可以优先访问新安装的Xcode git

更长的答案。

解释错误消息。

通过查看Mac OS X官方Git安装程序包uninstall.sh随附的Bash脚本的内容,可以确切地了解该问题。这是顶部附近的代码段,引发您所看到的错误:

#!/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/在的核心Mac OS X目录中,而不是安装在的核心Mac OS X目录中/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。相反,您要使Terminal更喜欢git安装在/usr/local/git/bin/中的核心Mac OS X二进制文件中的二进制文件/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调整,仅提供一个最新的纯净版本号,即可使用。


-2

git安装是不够的。还请记住,git只有当您cd进入功能齐全的git repo文件夹时,该选项才起作用。这意味着您应该看到一个./.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 repo,您​​将看到类似以下内容:

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

2
zz!对不起SaxDaddy,但这是关于Git 使用的答案,而最初的问题是有关使用Git本身的最新版本来代替Xcode附带的Apple安装的Git。
JakeGould

@JakeGould,我的好事对你不利。感谢您保持真实
SaxDaddy
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.