meg*_*one 90 git zsh osx-yosemite
升级到OSX 10.10 Yosemite Beta后,正在运行git pull返回以下错误:
/ Library/Developer/CommandLineTools/usr/libexec/git-core/git-pull:第11行:git-sh-setup:没有这样的文件或目录
我检查了引用的git-core目录,git-sh-setup.sh就在那里.
其他git命令正如预期的那样工作
pil*_*lif 100
我认为现在最干净的解决方案是将iTerm会话中的初始命令更改为
/usr/bin/login -f <your user name>
Run Code Online (Sandbox Code Playgroud)
这解决了我的问题.
用于分析问题的另一个数据点:似乎在10.10中,存在PATH环境变量的多个副本,并且子shell似乎更喜欢第二个副本.
您可以通过启动iTerm启动的控制台上的任何cocoa应用程序来重现这一点.你会得到一个如下警告:
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'.
Run Code Online (Sandbox Code Playgroud)
我相信这是10.10中的一个问题,而不是iTerm,但是iTerm正在做的事情正在使它自我显现(这在Terminal.app中不会发生)
更新:这是由iTerm对环境做"有趣"的事情造成的.更新到iTerm 2.0的正式版本,以解决这个问题.
Jer*_*oia 35
我相信这是使用zsh时iTerm中的一个错误.他们故意不调用/ usr/bin/login,并且他们不使用execle来清除它们应该的环境变量.
Mar*_*hof 20
下载最新版本的iTerm2为我解决了这个问题!
Fen*_*eng 16
另一种解决方案,修改你的iTerm2
cd /Applications/iTerm.app/Contents/MacOS
mv iTerm iTerm-bin
cat > iTerm <<EOF
#!/bin/sh
unset PATH
\${0}-bin
EOF
chmod +x iTerm
Run Code Online (Sandbox Code Playgroud)
完成.
享受优胜美地的iTerm2吧!
小智 13
作为临时解决方案,我将git-pull行11,12和336修改为:
. /usr/local/Cellar/git/2.0.0/libexec/git-core/git-sh-setup
. /usr/local/Cellar/git/2.0.0/libexec/git-core/git-sh-i18n
eval="/usr/local/Cellar/git/2.0.0/libexec/git-core/git-merge $diffstat $no_commit $verify_signatures $edit $squash $no_ff $ff_only"
Run Code Online (Sandbox Code Playgroud)
这个现在修复了git-pull,但我确信有更好的解决方案.
| 归档时间: |
|
| 查看次数: |
21946 次 |
| 最近记录: |