Невозможно создать снимок в XCode 4.5.1 после обновления параметра ~/.gitconfig [push.default] до "простого"
Мне удалось создать снимок для моего проекта в 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, я не решил настраивать git-репо в своем проекте XCode, но использовал снимок как способ резервного копирования моего кода. Я думаю, что есть какой-то трюк с git в снимке XCode, я не могу понять это. Теперь интересно, может ли кто-нибудь сказать мне, как повторно включить снимок в XCode (не изменяя параметр.gitconfig [push.default])?
2 ответа
Мне удалось решить свою проблему. См. В вопросе 10449374 для соответствующих деталей.
Основная проблема в этом случае заключается в том, что: XCode просто устанавливает (вместе с инструментами командной строки) свою собственную версию git в /Applications/Xcode.app/Contents/Developer/usr/bin .
И так или иначе, Xcode также жестко запрограммирован, он будет использовать свою собственную версию инструментов (таких как git). И (я не знаю почему) функция "снимка" в XCode имеет некоторую интеграцию с git.
Итак, когда я:
- установил новую версию git через homebrew,
- обновите новый параметр push.default в ~/.gitconfig,
- хотите создать снимок в проекте XCode
Тогда я столкнусь с проблемой, которую я описал выше.
Вот мое решение:
перейдите в каталог Xcode:
cd /Applications/Xcode.app/Contents/Developer/usr/bin
переименуйте git Xcode как это:
sudo mv ./git ./git-xcode-usr-bin
свяжите мой собственный git, который установлен через homebrew:
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.
Что ж, вы можете попробовать указать другой файл.gitconfig для XCode с помощью метода, представленного в этом ответе: Как я могу указать собственный глобальный путь gitconfig?,
Например, после создания ~/.xcode_home в качестве нового приложения $HOME для Xcode вы можете использовать следующий скрипт оболочки для запуска Xcode:
HOME=$HOME/.xcode_home open "$(xcode-select --print-path)/../.."
Это не совсем удобно для пользователя, хотя... В любом случае, вы можете проверить это: Установка переменных среды в OS X?, Но имейте в виду, что перезапись $HOME глобально не может быть хорошей идеей.