Macos git pull总是失败,但是git fetch/merge可以

Macos git pull总是失败,但是git fetch/merge可以,macos,git,git-merge,git-pull,Macos,Git,Git Merge,Git Pull,当我在任何存储库中git pull时,总是会出现以下合并错误: aetherboard:shwangster shwangster$ git pull -v From github.com:sirspinach/shwangster = [up to date] master -> origin/master merge: 012012012012012012012012012012012012012012012012012012012012 - not somethi

当我在任何存储库中
git pull
时,总是会出现以下合并错误:

aetherboard:shwangster shwangster$ git pull -v
From github.com:sirspinach/shwangster
 = [up to date]      master     -> origin/master
merge: 012012012012012012012012012012012012012012012012012012012012 - not
something we can merge
另一方面,
git-fetch
git-merge-origin/master
工作起来很有魅力。所以我已经能够解决这个问题一段时间了。但是,我今天需要更新brew,同样的错误阻止了我这样做

以下是
brew update
的输出,显示git再次尝试与神秘的
0120…
合并

aetherboard:gitrepos shwangster$ brew update
merge: 012012012012012012012012012012012012012012012012012012012012 - not 
something we can merge
Error: Failure while executing: git pull -q origin refs/heads/master:refs/remotes/origin/master

Kaz在评论中提到的另一个(几乎完全重复)问题中有一条线索,即当
pyenv
$PATH
中取出时,问题就消失了

下面是pull脚本中的一位,它接受
FETCH\u HEAD
跟踪,并将其转换为
git merge
的参数(或者在执行重定基调拉时转换为
git rebase
):

(顺便说一句,请注意,这些是
之前和之后的制表符,不用于合并
,在sed的第二个
-e
参数中。剪切和粘贴通常会将制表符变为空格,并在此处执行。)

我猜想
sed
部分工作正常,调用
tr
时出现故障。事实上,无论使用什么
tr
,它看起来都只是简单地吐出
012
字符串(总共60个字符,或者三个字符组的20个实例不确定如何发生,因为
sed
输出是或应该是40个字符的SHA-1)

如果shell是
sh
bash
,请参见以下内容:

$ type tr

印刷品。如果您使用csh变体,
哪个tr
将显示它将运行什么。(我不确定dash和zsh应该使用什么。)如果您得到的不是
/usr/bin/tr
,这可能就解释了问题。(如果您确实得到了
/usr/bin/tr
请查看
键入sed
sed
所说的内容:这些应该是
/usr/bin/sed

我不确定到底出了什么问题,但在
git pull
失败后,请查看文件
FETCH\u HEAD
(在
.git
目录中)的内容。
pull
命令使用额外的参数运行
fetch
,这些参数告诉它在
fetch\u HEAD
中留下跟踪,然后使用这些跟踪运行
git merge
。这些跟踪有点愚蠢,导致
pull
脚本发出错误的
merge
命令。谢谢你的帮助,torek。以下是我尝试git pull后从两个不同的存储库中获取头的内容:1<代码>ecbacbe7d1b15058065d8856328cecba8141b1d0 github.com的分支“master”:sirspinach/shwangster2<代码>206b62d28091d98909947ad32085a15fa463d7f5不适用于github.com的合并分支“master”:sirsponich/cs61a scheme的精确副本:有趣的。。。文件内容正常,问题一定出在合并头的选择上。看起来
tr'\012'
出错了。非常感谢!原来git所期待的
tr
被我很久以前安装的取代了。
$ type tr