/ usr / bin / git来自哪里?


24

我有一个小问题。在某些时候,我使用了git,但是我不记得它是否默认安装在Lion上。

这是git的版本和路径:

$ git --version
git version 1.7.5.4
$ which git
/usr/bin/git

我在/ usr / local / git中也有更新的git

我想使用较新的版本,但是我不知道是否通过删除旧版本(/ usr / bin在path变量中具有优先级)会破坏某些功能。

解决此冲突的正确方法是什么?


9
git由Xcode安装。不过,我不能告诉你它是否会破坏任何东西。在您的鞋子中,我将其重命名,以防日后需要放回原处。
史蒂芬·费舍尔

嗯..好吧,我要做的就是将新安装重新命名为git2或类似的名称,然后像这样使用它。
cromestant 2012年

我的意思是重命名旧版本,而不是删除它。这样,如果您确实有问题,可以将其重命名。
史蒂芬·费舍尔

1
@StevenFisher,您应该做出答案。:)
Ian C.

好。我希望有人能给出一个真正的答案,而不是“我不知道!” 在里面。:)
史蒂芬·费舍尔

Answers:


26

git由Xcode安装。我怀疑如果更换它会遇到任何问题,但是我不能给您确切的答案……

  1. 我要做的是将旧名称重命名/usr/bin/gitgit_old,然后根据您的路径选择新名称。
  2. 如果这样无效,请将新的移动到/usr/bin。我怀疑Xcode对使用的git版本是否挑剔。
  3. 如果仍然不能正常工作,招git_old/usr/bin/git和兼用的直接路径,重命名,或别名为你新的。

我怀疑您是否必须超越上面的#1。那应该足够了。

编辑:我读了你原来的帖子倒退。您应该做的第一件事是确保您的路径在包含旧git的目录之前包含新的git目录。


3种选择:确认第一个可行。
Marius Butuc 2012年

9

除非您确实需要空间,否则您无需去破解其他版本。编辑您的.bash_profile,并确保/ usr / local / bin出现在PATH变量中/ usr / bin的前面

我个人更喜欢采用定义了刀具路径并根据这些路径构建路径的方案,例如

GIT_HOME=/usr/local

PATH=${GIT_HOME}/bin:${PATH};export PATH
MANPATH=${GIT_HOME}/share/man:${MANPATH};export MANPATH

这意味着,使用PATH搜索工具的所有内容都将找到您的git版本,“真正必须”具有/ usr / bin版本的任何内容都很可能会硬连接该路径,并且仍然可以找到它


6

我有同样的问题:Git的旧版本是Xcode版本。我尝试从http://git-scm.com/安装新版本的Git,并bash_profile使用

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

然后重新加载您的bash并尝试 git --version

为我工作:)


1

在我的系统(10.7.3,Xcode 4.3.2)上git未安装Xcode /usr/bin/git。所有Xcode 4(就像App Store中的所有应用程序一样)都在其.app捆绑包中。具体来说,其git位于/Applications/Xcode.app/Contents/Developer/usr/bin/git

我一直在使用git(通过Xcode),/usr/bin/git在这里我根本没有。因此,它不是默认Lion安装的一部分,或者至少不在该位置。

FWIW,Xcode.app捆绑包中的git的--version内容为:

git版本1.7.7.5(Apple Git-26)

所以我敢打赌/usr/bin/git,您的安装是您自己的,更新它不会对您造成任何伤害。

另外,您可以安装Xcode(它是免费的!),并放入/Applications/Xcode.app/Contents/Developer/usr/bin/$ PATH中,但是如果只需要git,那就太过分了。


我也有xcode,所以我目前安装了三个版本的git ...很好找到!
疯狂的

1
如果没有/usr/bin/git,则可能没有安装Xcode“命令行工具”。参见stackoverflow.com/q/9329243/152142
Justin M. Keyes

1

Ken是正确的,因为git仅通过Xcode.app路径可用。当我安装Mountain Lion(10.8)时,突然我在/ usr / bin / git中有了git,所以据我所知这是Mountain Lion的一个附加功能...

尽管...此后我已经安装了很多东西,但不确定是否不是其他东西的依赖。


0

我真的不知道,我想我还没有安装git或XCode,但是安装自制程序并运行brew doctor它后,它说:

$ brew doctor
Warning: /usr/bin occurs before /usr/local/bin
This means that system-provided programs will be used instead of those
provided by Homebrew. The following tools exist at both paths:

    git
    git-cvsserver
    git-receive-pack
    git-shell
    git-upload-archive
    git-upload-pack

Consider setting your PATH so that /usr/local/bin
occurs before /usr/bin. Here is a one-liner:
    echo export PATH="/usr/local/bin:$PATH" >> ~/.bash_profile

所以为什么?我刚刚安装了用于XCode(山狮)的命令行工具,我认为这是安装它的人。

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.