OSX 10.10 Yosemite beta on git pull: git-sh-setup: нет такого файла или каталога
после обновления до OSX 10.10 Yosemite Beta, работает git pull
возвращает следующую ошибку:
/ Library / Developer / CommandLineTools/usr / libexec/git-core / git-pull: строка 11: git-sh-setup: нет такого файла или каталога
Я проверил указанный каталог git-core и git-sh-setup.sh есть.
другие команды git работает так, как ожидалось
10 ответов:
Я думаю, что самое чистое решение для этого сейчас-это изменить начальную команду в вашем сеансе iTerm на
/usr/bin/login -f <your user name>
это устраняет проблему для меня.
еще одна точка данных для анализа проблемы: кажется, что в 10.10 существует несколько копий переменной среды PATH, и подобласти, похоже, предпочитают вторую копию.
вы можете воспроизвести это, запустив любое приложение cocoa на консоли, как запущено iTerm. Вы получите предупреждение это выглядит так:
2014-06-04 19:23:09.859 gitx[14676:362580] *** -[NSProcessInfo environment]: Warning: duplicate definition for key 'PATH' found in environment -- subsequent definitions are ignored. The first definition was '(the path I have configured in my shell)', the ignored definition is '/usr/bin:/bin:/usr/sbin:/sbin'.
Я считаю, что это проблема в 10.10, а не iTerm, но что-то, что делает iTerm, заставляет его проявляться (этого не происходит в терминале.приложение)
обновление: это вызвано тем, что iTerm делает "интересные" вещи для окружающей среды. Обновление до официального выпуска iTerm 2.0, чтобы сделать эту проблему уйти.
Я считаю, что это ошибка в iTerm при использовании zsh. Они намеренно не вызывают /usr/bin/login, и они не используют execle для очистки переменных среды, как они должны быть.
другое решение, измените свой iTerm2
cd /Applications/iTerm.app/Contents/MacOS mv iTerm iTerm-bin cat > iTerm <<EOF #!/bin/sh unset PATH ${0}-bin EOF chmod +x iTerm
сделано.
наслаждайтесь iTerm2 с Yosemite!
в качестве временного решения я изменил git-pull lines 11, 12 и 336, чтобы быть:
. /usr/local/Cellar/git/2.0.0/libexec/git-core/git-sh-setup . /usr/local/Cellar/git/2.0.0/libexec/git-core/git-sh-i18n eval="/usr/local/Cellar/git/2.0.0/libexec/git-core/git-merge $diffstat $no_commit $verify_signatures $edit $squash $no_ff $ff_only"
это исправляет git-pull на данный момент, но я уверен, что есть лучшее решение.
вот временное исправление (при условии, что Homebrew и Git 2.0.0), если вам нужно, чтобы Git работал до официального исправления. Я устанавливаю две переменные оболочки:
export GIT_PATH="/usr/local/Cellar/git/2.0.0/bin" export GIT_CORE_PATH="/usr/local/Cellar/git/2.0.0/libexec/git-core"
... а потом заменили экземпляры
git
с соответствующими абсолютными ссылками. Вы можете использовать следующие логи сделать то же самое:
- заменить /usr/местные/погреб/ГИТ/2.0.0/IP-адресов/ГИТ-основные/ГИТ-ш-настройки/ С git-sh-setup
- заменить / usr / local / Cellar/git / 2.0.0 / libexec / git-core/git-stash/ С git-stash
- заменить /usr / local / Cellar/git / 2.0.0 / libexec / git-core/git-pull/ С git-pull
это хак наверняка, но это заставит вас идти.
EDIT: убедитесь, что вы смотрите на ответ от @pilif, прежде чем делать это...
обходной путь Ubiquill применяется для git rebase (и, предположительно, в зависимости от того, какие другие функции не работают). В этом случае требуется заменить строки 47 и 48 следующим *:
. /usr/local/Cellar/git/2.0.0/libexec/git-core/git-sh-setup . /usr/local/Cellar/git/2.0.0/libexec/git-core/git-sh-i18n
* этот путь предполагает, что у вас установлен git с homebrew, и он живет внутри /usr/local/Cellar/git/2.0.0/.
отредактируйте файл git-pull и добавьте эту строку поверх него (сразу после блока комментариев)
PATH="$(dirname ):$PATH"
или просто скопируйте и вставьте это в терминале :
ed -s $(which git-pull) <<< $'6i\nPATH="$(dirname ):$PATH"\n.\nwq'
обновление: как предполагается pilif, начиная с последнего обновления iTerm2 (1.0.0.20140629),
git-pull
работать правильно без этогоPATH
переопределить.
обновление: все еще не работает с релизом, упомянутым ниже, моя ошибка. Git push работает Git pull не делает.
Мне кажется, что проблема была исправлена Apple с Mac OS X Yosemite 10.10 (14A329r). я нахожусь на общем бета-канале Yosemite (не разработчик). Git push/
тянутьработает как ожидалось снова без каких-либо изменений.