如何动态确定git-core文件夹的位置?

时间:2017-02-02 17:00:29

标签: git

快速谷歌说该文件夹应位于/usr/share/git-core,但我认为这取决于它的安装方式,因为我的位于/usr/local/share/git-core而我的同事位于其他地方。

是否有可用于输出git-core的绝对位置的命令或变量?

1 个答案:

答案 0 :(得分:3)

$ git --exec-path
/usr/lib/git-core

通过该标志或GIT_EXEC_PATH环境变量的参数进行覆盖。

如果您有多个git副本,请尝试~/homebrew/bin/git/usr/bin/git或Xcode副本的路径。

git如何查找子命令的完整故事实际上很简单:它从argv,环境或编译时值中找到exec_path的值。然后它将它推到PATH的前面。

/*
 * We use PATH to find git commands, but we prepend some higher
 * precedence paths: the "--exec-path" option, the GIT_EXEC_PATH
 * environment, and the $(gitexecdir) from the Makefile at build
 * time.
 */
setup_path();

(与此评论所暗示的相反,它只选择其中一个。)

许多旧版本的git只是用所有git-whatever命令污染了你的路径。

如果您正在尝试诊断或包揽某些时髦的东西,您可以尝试使用git-core的正确路径来操纵PATH,但调用正确的git副本的可能性更大。

$ echo '/usr/bin/env' > ~/local/bin/git-env
$ chmod +x ~/local/bin/git-env
$ env - PATH=~/local/bin /usr/bin/git env
PATH=/usr/lib/git-core:/home/josh/local/bin
PWD=/home/josh
$