2

我能够在 XCode 4.5.1 中为我的项目创建快照。但现在同一个项目一直在告诉我:

Unable to create a snapshot
error: Malformed value for push.default: simple
error: Must be one of nothing, matching, tracking or current.
fatal: bad config file line 21 in /Users/oppih/.gitconfig

我记得今天我之前把另一个项目推到 github 上时,我收到了这样的警告提示:

warning: push.default is unset; its implicit value is changing in 
Git 2.0 from 'matching' to 'simple'. To squelch this message 
and maintain the current behavior after the default changes, use: 

  git config --global push.default matching

To squelch this message and adopt the new behavior now, use: 

  git config --global push.default simple

所以我用谷歌搜索了一下,不久前发现了这个问题:13148066,并得到了解决,我使用了git config --global push.default simple因为“这是一个更直观的行为,这就是为什么默认值被更改为这个的原因。”

我认为我对 XCode 的问题必须与此 git 选项更新有关。

回到 XCode,我没有选择在我的 XCode 项目中设置 git repo,而是使用快照作为备份代码的一种方式。我认为 XCode 的快照中的 git 有一些技巧,我无法弄清楚。现在我想知道是否有人可以告诉我如何在 XCode 中重新启用快照(而不是更改 .gitconfig [push.default] 选项)?

4

2 回答 2

3

我设法解决了我自己的问题。有关详细信息,请参见问题 10449374

这种情况下的主要问题是:Xcode 只需在 /Applications/Xcode.app/Contents/Developer/usr/bin 中安装(连同命令行工具)它自己的 git 版本。

不知何故,Xcode 还硬编码它会使用自己的工具版本(例如 git)。而且(我不知道为什么)Xcode 的“快照”功能与 git 有一些集成。

所以当我:

  1. 通过自制软件安装了新版本的 git,
  2. 更新 ~/.gitconfig 中的新 push.default 选项,
  3. 想要在 Xcode 项目中创建快照

然后我会遇到我上面描述的问题。

这是我的解决方案:

  1. 切换到 Xcode 目录:

    cd /Applications/Xcode.app/Contents/Developer/usr/bin

  2. 像这样重命名 Xcode 的 git:

    sudo mv ./git ./git-xcode-usr-bin

  3. 链接通过自制软件安装的我自己的 git:

    sudo ln -s /usr/local/bin/git ./git

我做了同样的事情/usr/bin/git

sudo mv /usr/bin/git /usr/bin/git-xcode-usr-bin
sudo ln -s /usr/local/bin/git /usr/bin/git

这将实际链接/usr/local/Cellar/git/1.8.0/bin/git(因为我目前使用的是 git 1.8.0)

有点棘手,以后升级自制的git就得更新链接了。它确实适用于 Xcode 的快照和新的 push.default 选项。

于 2012-11-13T15:06:19.020 回答
1

好吧,您可以尝试通过此答案中提供的方法为 Xcode 指定另一个 .gitconfig 文件:如何指定自定义全局 gitconfig 路径?.

例如,在为 Xcode 应用程序创建了 ~/.xcode_home 作为新的 $HOME 之后,您可以使用以下 shell 脚本来启动 Xcode:

HOME=$HOME/.xcode_home open "$(xcode-select --print-path)/../.."

虽然它对用户不太友好......无论如何,您可能想检查一下:在 OS X 中设置环境变量?. 但请注意,全局覆盖 $HOME 可能不是一个好主意。

于 2012-11-11T14:45:46.383 回答