OSX 10.10关于git:git-sh-set:没有这样的文件或目录?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (13)

升级到OSX 10.10 Yosemite Beta后,运行git pull返回以下错误:

/Library/Developer/CommandLineTools/usr/libexec/git-core/git-pull: line 11: git-sh-setup: No such file or directory

我检查了引用的git核心目录,git-sh-setup.sh就在那里。

其他git命令正按照预期工作。

提问于
用户回答回答于

我认为目前最干净的解决方案是将iTerm会话中的初始命令更改为

/usr/bin/login -f <your user name>

这解决了我的问题。

进一步分析这个问题的数据点:在10.10中,路径环境变量的多个副本存在,子shell似乎更喜欢第二个副本。

可以通过在控制台上启动iTerm启动的任何可可应用程序来复制该应用程序。你会收到这样的警告:

2014-06-04 19:23:09.859 gitx[14676:362580] *** -[NSProcessInfo environment]: Warning: duplicate definition for key 'PATH' found in environment -- subsequent definitions are ignored.  The first definition was '(the path I have configured in my shell)', the ignored definition is '/usr/bin:/bin:/usr/sbin:/sbin'.

我相信这在10.10是一个问题,而不是iTerm,但iTerm正在做的事情是使它自己显现出来(这在Terminal.app中没有发生)

这是因为iTerm对环境做了“有趣的”事情。更新iTerm2.0的官方版本,以解决这个问题。

用户回答回答于

我相信这是iTerm在使用zsh时的一个bug。他们故意不调用/usr/bin/login,也不像应该的那样使用execle清除环境变量。

扫码关注云+社区