如何在 macOS 上将 Git 升级到最新版本?

Posted

技术标签:

【中文标题】如何在 macOS 上将 Git 升级到最新版本?【英文标题】:How to upgrade Git to latest version on macOS? 【发布时间】:2012-02-15 23:45:04 【问题描述】:

我刚买了一台装有 OS X Lion 的新 Mac,我在终端中检查了默认安装的 git 版本。我得到了答案

git --version
> git version 1.7.5.4

我想将 git 升级到最新版本 1.7.8.3,所以我下载了 dmg 安装程序“git-1.7.8.3-intel-universal-snow-leopard.dmg”并启动了它。

安装后,终端仍然显示版本是1.7.5.4。我做错了什么?

【问题讨论】:

键入 which git 以查看二进制文件的位置。那是你安装新的那个地方吗? 上面写着/usr/bin/git 是 1.7.5.4,但是我怎么知道 DMG 在哪里安装了新版本?为什么它不会自动升级/覆盖以前的版本?如果我想使用新版本,如何将git 命令链接到新版本? (顺便感谢您的快速回答!) 在我的 mac (os 10.6.8) 上,旧的 git 1.7.5.4 位于 /usr/bin/git 中,而新的 git 安装程序 1.7.11.3 将 git 放入 /usr/local/ 我想知道superuser.com/a/580611/74576 是否是一个好方法。我希望我能弄清楚它的命令。 我在 .bash_profile 而不是 .bashrc 中输入了条目,它起作用了。我认为如果您的终端作为“默认登录外壳”运行,那么它会发生。 【参考方案1】:

如果您已经拥有 Homebrew,这很简单: 假设您已安装自制软件,请输入以下内容:

brew install git

这应该会自动安装 git 并将其设置在您的路径中,替换 Apple 路径。

现在退出并重新启动您的终端。

然后查看git版本确认。

git --version

如果上述命令的输出显示的是最新版本,并且没有在版本详细信息中提及 Apple,那么您就大功告成了。

如果您仍然看到苹果版本,请输入以下两行,这将手动设置我们的路径到本地 git 发行版而不是 Apple 版本。

export PATH=/usr/local/bin:$PATH
git --version

如果您没有自制软件,请按照以下步骤操作

检查版本

$ git --version

备份(或删除)Apple git(可选)

$ sudo mv /usr/bin/git /usr/bin/git-apple

如果没有,请安装 Homebrew

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

如果你已经有的话就更新

$ brew update && brew upgrade

使用 Homebrew 安装 Git

$ brew install git

符号链接

$ brew link --force git

退出终端并打开一个新终端,然后检查版本。

$ git --version

你应该看到...

git version <latest version>

不错!我们现在安全了!下次你可以……

$ brew update && brew upgrade

【讨论】:

关于 sudo mv /usr/bin/git /usr/bin/git-apple:重命名系统 git 将无法在 macOS El Capitan 及更高版本上运行,除非您按照此处 apple.stackexchange.com/a/248229/16290 的说明禁用系统完整性保护。就我个人而言,我只是更新我的PATH,以便/usr/local/bin 出现在/usr/bin 之前。这样 Homebrew 的 git 总是优先(在你关闭终端并重新打开之后)。对于 git 安全漏洞,Apple 最终将使用其安全更新更新捆绑的 git。同时,可以通过配置 PATH 来避免使用内置的 git。 我根本不需要进行路径导出——brew 自动处理了这一切 我实际上必须brew upgrade git,因为我已经安装了git export PATH=/usr/local/bin:$PATH 为我工作。谢谢。 谢谢@NateCook。终于得到了我想要的东西。【参考方案2】:

如果你添加可能会更好:

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

到您的主文件夹中名为 .bashrc 的文件。这样,您可能会在/usr/local/git/bin 中安装的任何其他软件也将首先被找到。

要简单地执行此操作,只需键入:

echo "export PATH=/usr/local/git/bin:/usr/local/sbin:$PATH" >> ~/.bashrc

进入终端,它会为您完成。

【讨论】:

就像 README.txt 说的,git 安装到 /usr/local/git。 kmikael 的实用技巧仅适用于 bash。 (要更改 mac 默认 shell 解锁系统首选项中的帐户或“用户和组”窗口,请按住 control 并单击帐户以获取“高级选项”。)使用 bash_profile 而不是 bashrc 的建议,例如echo 'export PATH="/usr/local/git/bin:/usr/local/sbin:~/bin:$PATH"' >> ~/.bash_profile 位于 moncefbelyamani.com。关于是否添加到 .bash_profile 或 .bashrc 的讨论在 superuser.com 你用什么来安装git?我刚查了最新版本,官方安装程序here将git安装到/usr/local/git/bin/git,也就是说上面的方法在10.8.4上应该还是可以的。 感谢@miker,它对我有用 .bash_profile,但不适用于 .bashrc。 我没有选中这个解决方案,即使它有效。请阅读我的消息更新以获得解释。【参考方案3】:

如果使用自制软件,您可以使用

更新 sim 链接
brew link --overwrite git

【讨论】:

我尝试了以上所有其他答案,这就是最终让我使用最新版本的 git 的原因。运行brew install git 让我获得了最新版本,但它没有正确设置符号链接。运行brew link git 给了我一个错误,说它无法对 git 进行符号链接,因为它已经存在。终于运行 brew link --overwrite git 把钉子放在棺材里,所以现在 git --version 表明我正在使用最新版本的 git 完美运行!其他解决方案安装新版本,但当我从git --version检查时不更新【参考方案4】:

对我来说,使用Homebrew 1.6.7,以下工作:

brew upgrade git

【讨论】:

从今天开始使用 macOS Cataline (10.15.6),这一行代码就可以工作了。要验证版本,只需重新启动终端。它只是覆盖了 Apple 版本的 git。【参考方案5】:

我使用以下内容在 mac 上升级 git。

hansi$ brew install git 

hansi$ git --version 
git version 2.19.0


hansi$ brew install git
Warning: git 2.25.1 is already installed, it's just not linked
You can use `brew link git` to link this version.

hansi$ brew link git 
Linking /usr/local/Cellar/git/2.25.1... 
Error: Could not symlink bin/git
Target /usr/local/bin/git
already exists. You may want to remove it:
  rm '/usr/local/bin/git'

To force the link and overwrite all conflicting files:
  brew link --overwrite git

To list all files that would be deleted:
  brew link --overwrite --dry-run git

hansi$ brew link --overwrite git 
Linking /usr/local/Cellar/git/2.25.1... 205 symlinks created


hansi$ git --version
git version 2.25.1

【讨论】:

在我的情况下,我已经安装了 git,我使用下载了较新版本的自制软件再次安装,但没有正确链接。我最终需要手动取消链接,然后重新链接然后它工作。我还需要重新打开我的终端会话,以便它找到新版本而不是旧/系统版本:brew unlink git && brew link git && source ~/.bashrc 可以使用升级命令 (brew upgrade git) 将 Git 从 2.25.1 升级到 2.29.2【参考方案6】:

在 Google 上搜索“trouble upgrade git on mac”后,我阅读了几篇帖子并尝试了以下操作,然后通过完成第 4 步来解决问题:

    我使用上述导出命令更新了终端路径。每次我退出终端并重新启动它,当我输入git --version终端时,它仍然返回旧版本1.8。

    我按照 README.txt 说明升级到 .dmg 安装程序附带的当前版本 2.0.1,但当我重新启动终端时,仍然不行。

    我按照上面的说明查找了 /etc/path/ 文件夹,但我的 Mac 上不存在名为“path”的目录。我正在运行 OS X Mavericks 版本 10.9.4。

    然后我记得我在我的 Mac 上安装了 Homebrew 并运行了以下命令:

    brew --version
    brew update
    brew search git
    brew install git
    

这终于解决了我的问题。如果有人对为什么这样做有一些见解,将不胜感激进一步的见解。去年使用 Ruby 时,我的系统上可能有一些遗留的路径设置。

【讨论】:

我已经安装了 git。因此,当执行最后一步brew install git 时,我收到一条错误消息,它建议改为执行brew upgrade git 命令。你是男人!这只是把戏:)【参考方案7】:

我最近也将我的 OS X 机器上的 Git 升级到了最新版本。我没有使用与您相同的.dmg,但是当我安装它时,二进制文件被放置在/usr/local/bin 中。现在,按照我的PATH 的排列方式,目录/usr/bin 出现在/usr/local/bin 之前。所以我所做的是:

cd /usr/bin
mkdir git.ORIG
mv git* git.ORIG/

这会将名为 git* 的几个原始程序移动到一个新的子目录,以防止它们受到干扰。之后,which git 表示找到了/usr/local/bin 中的那个。

根据需要修改上述过程以适合您安装新二进制文件的位置。

【讨论】:

谢谢!实际上,新的二进制文件放在/usr/local/git 注意:我必须重新启动终端才能看到新的 git。看起来很明显,但一开始我很困惑。【参考方案8】:

git 主页上的安装程序默认安装到/usr/local/git。但是,如果你安装 XCode4,它会在/usr/bin 中安装一个 git 版本。为确保您可以轻松地从网站升级并使用最新的 git 版本,请编辑您的个人资料信息以将 /usr/local/git/bin 放在 $PATH 中的 /usr/bin 之前或编辑 /etc/paths 并插入 @987654326 @ 作为第一个条目。

这可能对至少改变 /etc/paths 中的顺序对我有用的人有所帮助。

【讨论】:

【参考方案9】:

@rafaecheve 的回复在我作为 Mac 用户的情况下非常有效。我的机器上安装了几个版本的 git,但使用包管理器、Homebrew 和以下代码:

brew link --overwrite git

我收到了这个确认

Linking /usr/local/Cellar/git/2.32.0... 212 symlinks created.

瞧!

【讨论】:

要覆盖系统 git,只需将 alias git="/usr/local/bin/git" 添加到您的 .zshrc.bashrc 或您喜欢的任何 shell。【参考方案10】:

目前我发现的最简单的方法是从 git 官方网站。 它只是计算依赖关系并下载所有必需的库/工具

http://git-scm.com/book/en/Getting-Started-Installing-Git

另一种主要方式是通过 MacPorts 安装 Git (http://www.macports.org)。如果您安装了 MacPorts,请安装 Git 通过

$ sudo port install git-core +svn +doc +bash_completion +gitweb

【讨论】:

【参考方案11】:

没有自制软件

    使用 git 网站上的the installer。 更新您的 ~/.bash_profile 文件。 请注意,此命令与 kmikael 的答案不同,它包含在文件中的内容: 其他命令:export PATH=/usr/local/git/bin:/usr/local/sbin/:[and so on] 以下命令:export PATH="/usr/local/git/bin:/usr/local/sbin:$PATH" 使用您喜欢的任何一种。

echo 'export PATH="/usr/local/git/bin:/usr/local/sbin:$PATH"' >> ~/.bash_profile

    如果您使用的是 Xcode,则需要 add some symbolic links。 示例:ln -s /opt/local/bin/git /usr/bin/git 重启终端。 which git 应该是 dmg 中 README.txt 文件中的目录。 git --version 应该说是更新版本。 echo $PATH 应该以 /usr/local/git/bin:/usr/local/sbin: 开头

【讨论】:

【参考方案12】:

为了保留两个版本,我只是更改了PATH环境变量的值,将新版本的git路径“/usr/local/git/bin/”放在开头,它强制使用最新版本:

$ 回声 $PATH

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/local/git/bin/

$ git --version

git 版本 2.4.9 (Apple Git-60)

原值: /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/local /git/bin/

新值: /usr/local/git/bin/:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local /bin:/opt/X11/bin

$ export PATH=/usr/local/git/bin/:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin

$ git --version

git 版本 2.13.0

【讨论】:

【参考方案13】:

git-scm.com 上没有最新版本的 mac 二进制文件,所以我从源代码安装。我缺少本地化所需的软件包,并添加了 NO_GETTEXT=true 以在没有本地化的情况下安装。

git clone https://github.com/git/git.git
cd git
make NO_GETTEXT=true
make NO_GETTEXT=true install

这在~/bin 下安装了git,然后我必须将其添加到我的PATH 变量的开头。

【讨论】:

这可以正常工作并在 macOS 10.10 上编译!但是现在我意识到我真的还需要升级curl,当我的linuxbox 有7.68​​.0 时,它卡在7.43.0 上。关闭编译 curl...【参考方案14】:

我不想改变路径层次结构,而是专门处理 git...我知道我永远不会使用旧 git 来做新 git 现在将管理的事情。这是一个蛮力解决方案。

注意:我在 Yosemite (10.10.2) 上安装了 XCode,首先

然后我从git-scm.com 上可用的二进制文件安装。

$ which git
/usr/bin/git
$ cd /usr/bin
$ sudo ln -sf /usr/local/git/bin/git
$ sudo ln -sf /usr/local/git/bin/git-credential-osxkeychain
$ sudo ln -sf /usr/local/git/bin/git-cvsserver
$ sudo ln -sf /usr/local/git/bin/git-receive-pack
$ sudo ln -sf /usr/local/git/bin/git-shell
$ sudo ln -sf /usr/local/git/bin/git-upload-archive
$ sudo ln -sf /usr/local/git/bin/git-upload-pack
$ ls -la
(you should see your new symlinks)

【讨论】:

【参考方案15】:

我是这样做的:

    打开安装在 Mac 上的 GitHub 应用程序 点击高级选项卡 → 安装命令行工具 收到所有命令已安装的消息后,请关闭终端并重新打开它。 现在检查git --version,它应该为您提供最新版本。

【讨论】:

【参考方案16】:

您需要调整shell路径,路径将设置在您的主目录中的.bashrc.bash_profile,更可能是.bash_profile

所以添加到类似于下面的路径并保留路径中已有的内容,每个段用冒号分隔:

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

【讨论】:

【参考方案17】:

您可以在没有任何命令的情况下执行此操作。 Katrina 提到的 Git 安装程序是解决方案,但这样做更容易:

    进入链接-https://sourceforge.net/projects/git-osx-installer/

    在“项目活动”下选择最新版本,下载并打开扩展名为 .pkg 的文件。

    然后,在“安全和隐私”系统偏好设置中,选择“仍然打开”选项。安装后,你将拥有最新版本的 git

【讨论】:

【参考方案18】:

在 macOS Monterey homebrew 上,二进制文件位于 /opt/homebrew/bin

将此添加到.bash_profile 将使自制git 优先于apple-git

export PATH=/opt/homebrew/bin:$PATH

【讨论】:

以上是关于如何在 macOS 上将 Git 升级到最新版本?的主要内容,如果未能解决你的问题,请参考以下文章

MinGW:如何在 Windows 上将 GCC/G++ 升级到版本 5?

如何升级MacOS到指定版本

如何升级MacOS到指定版本

如何在 centos 上将 dotnetcore 从 1.0.4 版本升级到 2.0.2 版本?

求教:osx10.8.5如何升级到最新版本

如何在 Windows 上将 NPM 升级到特定版本 6.4.1?