我不确定这是由我的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应该在哪里,所以这还不是特别有用。
有什么想法吗?
答案 0 :(得分:4)
这种行为确实可以通过安装Xcode来解释。事实上,我通过升级到Mavericks的行为非常相似,因为这显然会重新安装或更新Xcode。
发生了什么:您安装了一个完全正常运行的git版本,您已将其配置为simple
用于其push.default
。 Xcode被安装(或更新),并带来另一个过时的git版本,它还不知道simple
的选项push.default
。在命令行上键入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,它将覆盖我们刚刚创建的链接。这可能是导致我升级到小牛队时失败的原因。
另一个选择是将/ usr / local / git / bin放在 / usr / bin之前的路径中。您可以通过在.bash_profile:
中添加这样的行来完成此操作export PATH=/usr/local/git/bin:$PATH
(如果你还没有.bash_profile文件,只需在你的主目录中创建它)
这将导致更新版本的git成为搜索路径时首先找到的版本。一个细节:当您将该行放入.bash_profile时已经打开的终端将不会立即获得新行为 - 您可以运行source ~/.bash_profile
以使其获得新行为,或者只是关闭它们并再次启动它们
答案 1 :(得分:1)
我会查看 /Users/mbc/.gitconfig 第3行,看看实际上有什么价值。
[编辑...]
如果您正在尝试跟踪GitHub上的内容,我会尝试将值更改为“跟踪”#39;并查看是否可以解决您的问题。错误消息将指示' simple'的当前值。是完全错误的。
答案 2 :(得分:0)
default = simple
是在git 1.7.11中引入的,所以你的git版本无法识别它:
http://comments.gmane.org/gmane.comp.version-control.git/200276
为您提供的一些选择:
第三个选项为我解决了这个问题。我的编辑器没有配置为尊重我的用户的自定义路径,因此它默认为Apple安装的git而不是自制软件包。
答案 3 :(得分:-1)
我通过在终端中输入以下两行来解决这个问题
sudo rm -rf /usr/bin/git
sudo ln -s /usr/local/git/bin/git /usr/bin/git
基本上XCode命令行工具将它的git版本安装到/ usr / bin / git,当我从他们的网站安装Git时,它将它安装到/usr/local/git
。
通过删除第一个版本和sym链接下载的版本,一切正常。