安装Xcode后的git push.default设置

5

我不能确定这是否是由于我的xcode安装引起的,但在git停止工作之前,这是我电脑上唯一的重大更改。我还在github上找到了一些信息,表明这可能是问题所在。无论如何,每当我尝试拉取、克隆或推送时,都会收到以下消息:

error: Malformed value for push.default: simple
error: Must be one of nothing, matching, tracking or current.
fatal: bad config file line 3 in /Users/mbc/.gitconfig

如果运行git --version,会得到这个结果:git版本1.7.10.2(Apple Git-33)。
我试过安装最新版本,但即使安装程序声称成功,git --version也没有变化。
那么可能git安装在两个不同的位置?which git给出/usr/bin/git,但我不确定git应该在哪里,所以这还不是特别有帮助的。
有什么想法吗?

1
你是如何安装git的?使用独立安装程序还是某个软件包管理器?我的git位于usr/local/bin/git,与你的苹果提供的git在同一位置。你可能需要相应地更改PATH变量。 - Thilo
它是使用独立安装程序的。 - user1895572
4个回答

4
这种行为确实可以通过安装Xcode来解释。事实上,我升级到Mavericks时也遇到过非常相似的情况,因为那显然重新安装或更新了Xcode。
发生的情况是:您已经安装了一个完全可用的git版本,并将其配置为使用“simple”作为其“push.default”。Xcode被安装(或更新),并带有另一个已过时的git版本,该版本尚不知道“push.default”的选项“simple”。当您在命令行上键入“git”时,会搜索您的“PATH”以执行二进制文件。在您更近期的git版本之前,先找到了Xcode-git。重新安装git无济于事,因为它仍然安装在同一位置,并且该位置在Xcode git之后。
如silent1mezzo已经建议的一个可能的解决方案是在终端中执行以下操作:
sudo rm -rf /usr/bin/git
sudo ln -s /usr/local/git/bin/git /usr/bin/git

然而,如果您升级Xcode并重新安装自己的git,则会覆盖我们刚刚创建的链接。这可能是我升级到Mavericks时出现故障的原因。
另一种选择是在路径中将 /usr/local/git/bin 放在 /usr/bin 之前。您可以通过在 .bash_profile 中加入以下行来实现此目的:
export PATH=/usr/local/git/bin:$PATH

(如果您还没有 .bash_profile 文件,请在您的主目录中创建它)
这将使得更近期的 git 版本在您的路径搜索时被首先找到。一个细节:当您将该行代码添加到 .bash_profile 后已经打开的终端不会立即获得新的行为 - 您可以运行 "source ~/.bash_profile" 来给它们带来新的行为,或者关闭它们并重新启动。

1

我会查看 /Users/mbc/.gitconfig 的第三行,并查看实际存在的值是什么。

[edit...]

如果您想追踪GitHub上的内容,建议将值更改为“tracking”,看看是否可以解决问题。错误消息表明当前的“simple”值完全不正确。

没有第三行。这是文件的内容: [push] default = simple - user1895572

0

default = simple 是在 git 1.7.11 中引入的,因此您的 git 版本无法识别它:

http://comments.gmane.org/gmane.comp.version-control.git/200276

以下是一些选项:

  • 安装较新版本的git(我喜欢使用homebrew来处理这些事情,目前可用的git版本为1.8.1.1,但您可以选择自己熟悉的方式)
  • 根据错误信息提示,使用其他配置选项(请参见上面的链接以获取一些选项--我不知道哪个值最适合您的情况)
  • 如果您已经安装了另一个版本的git,但它没有显示出来,请确保/usr/local/bin在您的路径中位于/usr/bin之前。

第三个选项解决了我的问题。我的编辑器没有配置为遵守用户的自定义路径,因此默认使用了Apple安装的git而不是homebrew包。


-1
我通过在终端中输入以下两行代码来解决了这个问题。
sudo rm -rf /usr/bin/git
sudo ln -s /usr/local/git/bin/git /usr/bin/git

基本上,XCode命令行工具安装了它的git版本到/usr/bin/git,而当我从Git官网安装Git时,它被安装到了/usr/local/git

通过删除第一个版本并将下载的版本进行符号链接,一切都可以正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接