git - все еще не может нажать на репозиторий non-bare после установки receive.denycurrentbranch=ignore

Моя установка выглядит следующим образом:

Я использую git версии 2.3.2 (Apple Git-55) на моем Mac. Это не голый репозиторий Git, сидящий на ~/xyz,

Затем я использую 64-разрядную версию Windows 7, используя VMWare Fusion на том же Mac. Виртуальная машина имеет Git 1.9.5, которая является последней версией Git для Windows. С виртуальной машины я могу клонировать и вытащить из репродукции моего Mac непокрытый репо ~/xyz Хорошо, но я не могу настаивать на этом. Я последовал предложению здесь и установил receive.denycurrentbranch=ignore на ~/xyz но все равно выдает мне то же сообщение об ошибке:

remote: error: refusing to update checked out branch: refs/heads/master
remote: error: By default, updating the current branch in a non-bare repository
remote: error: is denied, because it will make the index and work tree inconsistent
remote: error: with what you pushed, and will require 'git reset --hard' to match
remote: error: the work tree to HEAD.
remote: error:
remote: error: You can set 'receive.denyCurrentBranch' configuration variable to
remote: error: 'ignore' or 'warn' in the remote repository to allow pushing into
remote: error: its current branch; however, this is not recommended unless you
remote: error: arranged to update its work tree to match what you pushed in some
remote: error: other way.
remote: error:
remote: error: To squelch this message and still keep the default behaviour, set
remote: error: 'receive.denyCurrentBranch' configuration variable to 'refuse'.

Я тоже пробовал настройку receive.denycurrentbranch=updateInstead но все то же сообщение об ошибке.

Я перезагружал компьютер после каждого изменения настроек git.

Каталог ~/xyz является общим каталогом для моей виртуальной машины, и я гарантировал, что виртуальная машина имеет доступ для чтения / записи к ней.

Пожалуйста, у кого-нибудь есть идеи?

2 ответа

Вам нужно запустить команду с сервера, на который вы загружаете код, а не из локальной системы репо

git config --global receive.denyCurrentBranch ignore

Во-первых, виртуальная машина может использовать любую версию Git по своему усмотрению, а не только старую и устаревшую версию msysgit 1.9.5: git для windows предлагает последнюю версию 2.4.6.
Никакой настройки не требуется, просто распакуйте PortableGit-2.4.6-5th-release-candid-64-bit.7z.exe куда угодно и добавьте его папку bin в папку %PATH%,

Я также попытался установить receive.denycurrentbranch=updateInstead

Эта функция Git 2.3.0+ (см. Примечания к выпуску) должна быть установлена ​​на стороне сервера, а не на клиенте.

Если это не удобно, Jason L упоминает в комментариях обходной путь:

не выталкивать репозиторий Mac Git из виртуальной машины, а вместо этого извлекать репозиторий VM Git из Mac.

Другие вопросы по тегам