Что означает предупреждение git "Обновление текущей проверенной ветки"? - PullRequest
31 голосов
/ 10 апреля 2009

Когда я делаю git push, я вижу следующее:

warning: updating the currently checked out branch; this may cause confusion,
as the index and working tree do not reflect changes that are now in HEAD.

Я гуглил это сообщение, и все, что я могу найти, это обсуждение списка рассылки git , где авторы пытаются решить, как сделать это сообщение лучше, чтобы сообщить мне, в чем заключается настоящая проблема. 1006 *

Как я это вызвал и как это исправить?

Ответы [ 3 ]

46 голосов
/ 10 апреля 2009

Это происходит, когда вы продвигаетесь к не голому репо. Чистое репо состоит из каталога .git; Репозиторий без обнажений также включает в себя проверку. В общем, вы не должны подталкивать к не-голому репо; фактически, в будущей версии git это будет запрещено. Если вы нажмете на непроигрышное репо, то ГЛАВА этого репо будет не синхронизирована с индексом и рабочей копией.

Если вы создаете репо, к которому люди захотят перейти, то вы должны создать его, используя git init --baregit init --bare --shared, если доступ к нему имеют несколько учетных записей), или git clone --bare, если создаем его путем клонирования существующего репо.

12 голосов
/ 10 апреля 2009

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

См. " Как опубликовать Git-репозиторий ":

Пустое хранилище - это хранилище без извлеченной рабочей копии кода. Он содержит только базу данных git.
Как правило, вы никогда не должны вставлять в репозиторий, содержащий изменения в рабочей копии.
Чтобы этого не произошло, мы делаем хранилище сервера пустым хранилищем - у него нет рабочей копии

С здесь :

Обратите внимание, что целью "push" обычно является голый репозиторий (т.е. без собственного рабочего дерева).
Вы также можете перейти в репозиторий, у которого есть извлеченное рабочее дерево, но рабочее дерево не будет обновляться нажатием.
Это может привести к непредсказуемым результатам, если ветвь, к которой вы переходите, является текущей извлеченной веткой.

Если определено отдельное рабочее дерево (которое может, например, соответствовать DocumentRoot веб-сервера), вам необходимо:

Проверьте в своем удаленном репозитории значение git config core.worktree и git config core.bare

5 голосов
/ 16 июня 2009

Я обнажил свой репозиторий, клонировав новый обнаженный репозиторий из моего испорченного, на всякий случай сохранив перепутанный, и заменив его своим клонированным голым.

Я новичок в git, и когда я настраивал репозиторий, я забыл использовать опцию --bare. Спасибо за вашу помощь!

С тех пор я прочитал Git-книгу О'Рейли, и теперь я полностью конвертирован в Git.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...