升级到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命令完全按预期工作
升级到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命令完全按预期工作
Answers:
我认为目前最干净的解决方案是将iTerm会话中的初始命令更改为
/usr/bin/login -f <your user name>
这为我解决了这个问题。
用于分析该问题的另一个数据点:在10.10中,似乎存在PATH环境变量的多个副本,并且子外壳似乎更喜欢第二个副本。
您可以通过在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对环境执行“有趣”的操作引起的。更新到iTerm 2.0的正式版本可以解决此问题。
/usr/bin/login -f $USER
,以便我可以在多个帐户上使用相同的配置文件:)
/bin/bash -c /bin/zsh
,它将保留其他环境变量,例如$SSH_AUTH_SOCK
。
/bin/bash -c /bin/zsh
比更好/usr/bin/login -f <your user name>
,因为它保留了字符编码。/usr/bin/login -f <your user name>
编码丢失,无法正常显示文件。
我相信这是使用zsh时iTerm中的错误。他们故意不调用/ usr / bin / login,也不使用execle清除环境变量。
/bin/bash -c /bin/zsh
login shell
到command
在首选项>简介>常规部分,并使用/bin/bash -c /bin/zah
作为@Sorenly曾建议,修正了这个正确的了!
下载最新版本的iTerm2为我解决了这个问题!
另一个解决方案,修改您的iTerm2
cd /Applications/iTerm.app/Contents/MacOS
mv iTerm iTerm-bin
cat > iTerm <<EOF
#!/bin/sh
unset PATH
\${0}-bin
EOF
chmod +x iTerm
做完了
与优胜美地一起享受您的iTerm2!
作为临时解决方案,我将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"
现在可以修复git-pull,但是我敢肯定有更好的解决方案。
. /usr/local/Cellar/git/2.0.0/libexec/git-core/git-parse-remote
$GIT_PATH/git-sh-setup
,等等
/usr/local/Cellar/git/2.0.0/libexec/git-core/git-sh-setup: line 334: git: command not found fatal: 'pull' appears to be a git command, but we were not able to execute it. Maybe git-pull is broken?
应用此修复程序后,任何人都知道该怎么办?
git
带/usr/local/bin/git
。git
git-pull中也有一些实例也必须替换
这是一个临时修复程序(假设Homebrew和Git 2.0.0),如果您需要Git在正式修复程序发布之前工作。我设置了两个shell变量:
export GIT_PATH="/usr/local/Cellar/git/2.0.0/bin"
export GIT_CORE_PATH="/usr/local/Cellar/git/2.0.0/libexec/git-core"
...然后git
用适当的绝对链接替换的实例。您可以使用以下要点执行相同操作:
当然,这是一个技巧,但是它将带您前进。
编辑:确保在执行此操作之前先查看@pilif的答案...
git-rebase.sh有更新
更新:我的错误仍然不能与下面提到的发行版一起使用。Git push起作用Git pull不起作用。
在我看来,Apple已使用Mac OS X Yosemite 10.10解决了该问题( 14A329r)修复。我在一般的Beta优胜美地频道(不是开发人员)上。git推/拉 无需任何修改即可再次按预期工作。
git stash
。如果找到解决方案,我会通知您