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 version 1.7.10.2 (Apple Git-33)

我尝试安装最新版本,但即使安装程序声称成功,git --version也没有改变。

那么也许 git 安装在两个不同的地方?which git给了我/usr/bin/git,但我不确定 git 应该在哪里,所以这还不是特别有用。

有任何想法吗?

4

4 回答 4

4

这种行为确实可以通过安装 Xcode 来解释。事实上,通过升级到 Mavericks,我的行为非常相似,因为这显然会重新安装或更新 Xcode。

发生的事情是这样的:您安装了一个完整的 git 版本,您已将其配置为simple用于它的push.default. simpleXcode 被安装(或更新),并带来了另一个过时的 git 版本,它还不知道push.default. 当您git在命令行上键入时,系统PATH会搜索要执行的二进制文件。Xcode-git 首先在您的路径上找到,在您更新版本的 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以使它们获得新行为,或者只是关闭它们并重新启动它们。

于 2013-10-28T17:07:55.373 回答
1

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

[编辑...]

如果您尝试跟踪 GitHub 上的内容,我会尝试将值更改为“跟踪”,看看是否能解决您的问题。错误消息将表明 'simple' 的当前值是完全错误的。

于 2012-12-11T20:43:05.217 回答
0

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

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

一些适合您的选择:

  • 安装较新版本的 git(我喜欢用自制软件来处理这些事情,它目前有 git 1.8.1.1 可用,但请选择让你舒服的东西)
  • 如错误消息所示,使用替代配置。(有关一些选项,请参见上面的链接——我不知道哪个值最适合您的情况。)
  • 如果您已经安装了另一个版本的 git,但它没有显示,请确保 /usr/local/bin 在您的路径中位于 /usr/bin 的前面。

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

于 2013-01-24T21:23:58.347 回答
-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.

通过删除第一个版本并符号链接下载的版本,一切正常。

于 2012-12-17T19:43:02.463 回答