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

Nic*_*non 140 git macos

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

git --version
> git version 1.7.5.4
Run Code Online (Sandbox Code Playgroud)

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

安装后,终端仍然说版本是1.7.5.4.我究竟做错了什么?

kmi*_*ael 55

如果添加以下内容可能会更好:

export PATH=/usr/local/git/bin:/usr/local/sbin:$PATH
Run Code Online (Sandbox Code Playgroud)

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

要轻松地执行此操作,只需键入:

echo "export PATH=/usr/local/git/bin:/usr/local/sbin:$PATH" >> ~/.bashrc
Run Code Online (Sandbox Code Playgroud)

进入终端,它会为你做.

  • kmikael的便利提示仅适用于bash.(要更改mac默认shell解锁帐户或系统首选项中的"用户和组"窗口,请按住Ctrl键单击"高级选项"帐户.)使用bash_profile而不是bashrc的建议,例如`echo'export PATH ="/ usr/local/git/bin:/ usr/local/sbin:〜/ bin:$ PATH"'>>〜/ .bash_profile`位于[moncefbelyamani.com](http://www.moncefbelyamani.com/how-to-安装-xcode的-自制-GIT-RVM-红宝石上-MAC /).有关是否添加到.bash_profile或.bashrc的讨论,请访问[superuser.com](http://superuser.com/questions/409186/environment-variables-in-bash-profile-or-bashrc) (18认同)

kvm*_*006 31

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

brew install git
Run Code Online (Sandbox Code Playgroud)

安装完成后,键入以下两行,这将设置我们到本地git发行版而不是Apple发行版的路径.

export PATH=/usr/local/bin:$PATH
git --version
Run Code Online (Sandbox Code Playgroud)

如果您没有主页,请按照这些步骤 检查版本

$ 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和更高版本上将不起作用,除非您按照此处所述禁用系统完整性保护,否则请参见https://apple.stackexchange.com / a / 248229/16290。就我个人而言,我只是更新自己的`PATH`,以便`/ usr / local / bin`出现在`/ usr / bin`之前。这样,Homebrew的git总是优先(在关闭终端并重新打开之后)。对于git安全漏洞,Apple最终将使用其安全更新来更新捆绑的git。同时,您可以按照所述配置PATH来避免使用内置git。 (3认同)
  • 我根本不需要导出路径——brew 会自动处理这一切 (3认同)
  • 我实际上必须“brew update git”,因为我已经安装了“git” (3认同)
  • 经过一点修改,它对我有用。我已经安装了 Homebrew,但我在 /usr/local/bin 中链接了苹果版本的 git (`cd /usr/local/bin &amp;&amp; ls -la =&gt; git -&gt; ../git/bin/git`。所以我做了 `brew link --overwrite git` 并修复了问题 (`cd /usr/local/bin &amp;&amp; ls -la =&gt; git -&gt; ../Cellar/git/2.35.1/bin/git`) ; `git --version =&gt; OK 来自brew的最新版本` (3认同)
  • 导出 PATH=/usr/local/bin:$PATH 对我有用。谢谢。 (2认同)
  • “如果您没有 Homebrew,请按照以下步骤操作...如果没有,请安装 Homebrew”谢谢 (2认同)

Kar*_*kis 30

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

brew upgrade git
Run Code Online (Sandbox Code Playgroud)

  • 截至今天,在 macOS Cataline (10.15.6) 上,这一行代码可以正常工作。要验证版本,只需重新启动终端即可。它只是覆盖 Apple 版本的 git。 (2认同)

Jan*_*ara 16

我使用以下内容在 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
Run Code Online (Sandbox Code Playgroud)

  • 就我而言,我已经安装了 git,并且使用 homebrew 再次安装,下载了较新的版本,但它没有正确链接。我最终需要手动取消链接,然后重新链接,然后它就起作用了。我还需要重新打开我的终端会话,以便它找到新版本而不是旧/系统版本:`brew unlink git &amp;&amp; brew link git &amp;&amp; source ~/.bashrc` (2认同)

Gre*_*ill 15

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

cd /usr/bin
mkdir git.ORIG
mv git* git.ORIG/
Run Code Online (Sandbox Code Playgroud)

这将命名的几个原始程序移动git*到一个新的子目录中,使它们不受阻碍.之后,which git显示/usr/local/bin找到了一个.

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

  • 谢谢!实际上新的二进制文件放在`/ usr/local/git`中. (2认同)

小智 14

在Google上搜索"在Mac上升级git麻烦"之后,我阅读了几篇帖子并尝试了以下内容,然后通过完成第4步来解决问题:

  1. 我使用上面提到的导出命令更新了我的终端路径.每当我退出终端并重新启动它时,当我键入git --version终端时,它仍然会返回旧版本1.8.

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

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

  4. 然后我回忆起我在我的Mac上安装了Homebrew并运行了以下内容:

    brew --version
    brew update
    brew search git
    brew install git
    
    Run Code Online (Sandbox Code Playgroud)

这终于解决了我的问题.如果有人对这为何如此有效有所了解,将会非常感谢进一步的见解.我去年使用Ruby时可能在我的系统上有一些遗留的路径设置.

  • 我已经安装了git。因此,当执行最后一步“brew install git”时,我收到一条错误消息,并建议执行“brew update git”命令。你就是那个男人!这很简单:) (2认同)

小智 8

如果使用自制软件,您可以使用更新SIM卡链接

brew link --overwrite git
Run Code Online (Sandbox Code Playgroud)

  • 我尝试了这个答案之上的所有其他答案,这就是最终让我使用最新版本的 git 的原因。运行 `brew install git` 为我提供了最新版本,但它没有正确设置符号链接。运行 `brew link git` 给我一个错误,说它无法符号链接 git,因为它已经存在。最后运行 `brew link --overwrite git` 给棺材上钉了钉子,所以现在 `git --version` 显示我使用的是最新版本的 git (5认同)
  • 无论出于何种原因,我必须关闭/重新打开我的终端才能实现更改。该命令运行良好,只是不适用于现有终端。 (4认同)
  • 效果完美!其他解决方案安装新版本,但当我从“git --version”检查时不会更新 (2认同)

Moh*_*rif 7

/usr/local/git默认情况下,git主页的安装程序会安装到.但是,如果您安装XCode4,它将安装一个git版本/usr/bin.为了确保您可以轻松地从网站升级并使用最新的Git版本,或者编辑您的个人资料信息来进行/usr/local/git/bin之前/usr/bin$ PATH或编辑/etc/paths并插入/usr/local/git/bin作为第一个条目.

它可能对某人有帮助 - 至少改变/ etc/paths中的顺序对我有效.


Kid*_*ddo 5

到目前为止我发现的最简单的方法是来自git官方网站.它只是计算了依赖关系并下载了所有必需的库/工具

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

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

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


Dat*_*Psy 5

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

brew link --overwrite git
Run Code Online (Sandbox Code Playgroud)

我收到了这个确认

Linking /usr/local/Cellar/git/2.32.0... 212 symlinks created.
Run Code Online (Sandbox Code Playgroud)

瞧!

  • 要覆盖系统 git,只需将 `alias git="/usr/local/bin/git"` 添加到您的 `.zshrc` 或 `.bashrc` 或您喜欢的任何 shell 中。 (3认同)

M. *_*loo 5

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

将其添加到.bash_profile将优先级 homebrew git 优先于 apple-git

export PATH=/opt/homebrew/bin:$PATH
Run Code Online (Sandbox Code Playgroud)