快速谷歌说该文件夹应位于/usr/share/git-core
,但我认为这取决于它的安装方式,因为我的位于/usr/local/share/git-core
而我的同事位于其他地方。
是否有可用于输出git-core
的绝对位置的命令或变量?
答案 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
$