Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
git pull上的OSX 10.10 yosemite测试版:git sh安装程序:没有这样的文件或目录_Git_Zsh_Osx Yosemite - Fatal编程技术网

git pull上的OSX 10.10 yosemite测试版:git sh安装程序:没有这样的文件或目录

git pull上的OSX 10.10 yosemite测试版:git sh安装程序:没有这样的文件或目录,git,zsh,osx-yosemite,Git,Zsh,Osx Yosemite,升级到OSX 10.10 Yosemite Beta版后,运行git pull返回以下错误: /Library/Developer/CommandLineTools/usr/libexec/git core/git pull:line 11:git sh setup:没有这样的文件或目录 我已经检查了引用的git核心目录,并且git-sh-setup.sh就在那里 其他git命令完全按照预期工作作为临时解决方案,我将git pull line 11、12和336修改为: . /usr/local

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

/Library/Developer/CommandLineTools/usr/libexec/git core/git pull:line 11:git sh setup:没有这样的文件或目录

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


其他git命令完全按照预期工作

作为临时解决方案,我将git pull line 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,但我相信有更好的解决方案。

Ubiquill的解决方案也适用于git rebase(可能还有其他任何不起作用的函数)。在这种情况下,需要将第47行和第48行替换为以下*:

. /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
*此路径假设您已将git与homebrew一起安装,并且它位于/usr/local/cillar/git/2.0.0/

如果您需要git在正式修复之前工作,这里有一个临时修复(假设homebrew和git 2.0.0)。我设置了两个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
的实例。您可以使用以下GIST执行相同操作:

  • /usr/local/ceral/git/2.0.0/libexec/git core/git sh setup/替换为
  • /usr/local/ceral/git/2.0.0/libexec/git core/git stash/替换为
  • /usr/local/ceral/git/2.0.0/libexec/git core/git pull/替换为
这当然是一个黑客,但它会让你走


编辑:在执行此操作之前,请确保查看@pilif的答案…

我认为这是使用zsh时iTerm中的一个错误。他们故意不调用/usr/bin/login,也不使用execle清除环境变量。

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

/usr/bin/login -f <your user name>
我相信这是10.10中的一个问题,而不是iTerm,但iTerm正在做的事情导致它自己表现出来(这在Terminal.app中不会发生)


更新:这是由于iTerm对环境做了“有趣”的事情造成的。更新到iTerm 2.0的官方版本以解决此问题。

另一种解决方案,修改您的iTerm 2

cd /Applications/iTerm.app/Contents/MacOS
mv iTerm iTerm-bin

cat > iTerm <<EOF
#!/bin/sh
unset PATH
\${0}-bin
EOF

chmod +x iTerm
cd/Applications/iTerm.app/Contents/MacOS
微波微波微波微波炉微波炉微波炉微波炉微波炉微波炉微波炉微波炉微波炉微波炉微波炉微波炉微波炉微波炉微波炉微波炉微波炉微波炉微波炉微波炉微波炉微波炉微波炉微波炉微波炉微波炉微波炉

cat>iTerm编辑git pull文件,并在其顶部添加此行(就在注释块之后)

或者只需将其复制粘贴到终端:

ed -s $(which git-pull) <<< $'6i\nPATH="$(dirname $0):$PATH"\n.\nwq'

ed-s$(哪个git拉)更新:仍然不能使用下面提到的版本,我的错误。Git push有效,Git pull无效


在我看来,这个问题已经被苹果用MacOSXYosemite 10.10(14A329r)解决了。我在约塞米蒂普通测试频道(不是开发者频道)。Git push/pull再次按预期工作,无需任何修改。

下载最新版本的iTerm2为我修复了这个问题

git-rebase.sh有更新



我也有这个问题,除了
git stash
。如果我找到一个解决方案,我会让你知道我只是在zsh上遇到了这个问题……从bash运行git时,它似乎工作得很好。与Zsh相关?这是iTerm2中与Zsh相关的一个bug。iTerm2在其最新版本(v1.0.0.20140629)中修复了它。我还必须将231更改为
/usr/local/cillar/git/2.0.0/libexec/git-core/git-parse-remote
如果需要更改,我将我的设置指向
$git\u PATH/git-sh-setup
等。我得到
/usr/local/cillar/git/2.0.0/libexec/git-core/git-sh-setup:第334行:未找到致命命令:“pull”似乎是一个git命令,但我们无法执行它。也许git pull坏了?
应用此修复程序后,有人知道该怎么办吗?@Andrew这很难看,但我必须通过git sh设置,将所有的
git
替换为
/usr/local/bin/git
。在git pull中也有一些git的例子,我认为你是对的。我花了数小时试图让各种Git修复程序正常工作,结果证明,从iTerm2 w/zsh切换到Yosemite的默认终端(仍然使用zsh)效果很好。你是怎么发现的?这是有史以来最特殊的人群。。。多好的一个边缘案例。这是一个非常好的分析。因此,一个好的解决方法是将iTerm中的初始命令设置为/usr/bin/login-f。另一个解决方法是将iTerm中的login shell命令设置为
/bin/bash-c/bin/zsh
在Preferences>Profile>General部分从
login shell
更改为
command
,按照@Sorenly的建议,使用
/bin/bash-c/bin/zah
,马上解决这个问题!这应该是正确的答案,惊人的修正。但是,我将命令设置为
/usr/bin/login-f$USER
,这样我就可以在多个帐户上拥有相同的配置文件:)显然,bash删除了所有重复的环境变量。因此,如果将命令设置为
/bin/bash-c/bin/zsh
,它将保留其他环境变量,例如
$SSH\u AUTH\u SOCK
。这以迄今为止最干净的方式解决了这个问题。谢谢!这是吉特。但是,每当我需要在id_rsa.pub中使用ssh时,都会要求我输入密码短语。在更改初始命令之前,我不必这样做,在Terminal.app中也不必这样做。有什么想法吗?我认为
/bin/bash-c/bin/zsh
/usr/bin/login-f
好,因为它保留了字符编码
/usr/bin/login-f
丢失了编码,无法正常显示文件。iTerm2是问题所在,这是解决问题的最佳方法之一。太好了。我甚至在10.10的公开发行版上也遇到了这个问题,这就解决了它。谢谢冯!不,我在14A329r上遇到了重复的环境变量,因此在该版本上尚未修复。@Zr40 thx。你是对的。不知怎的,Git推送现在起作用了?对我来说,Git pull仍然不是w
PATH="$(dirname $0):$PATH"
ed -s $(which git-pull) <<< $'6i\nPATH="$(dirname $0):$PATH"\n.\nwq'