Что означает предупреждение git "обновление в настоящее время проверенной ветки"?
Когда я нажимаю git, я вижу следующее:
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.
I Googled для этого сообщения, и все, что я могу найти, это git обсуждение списка рассылки, где авторы пытаются точно определить, как сделайте это сообщение лучше, чтобы сообщить мне, что такое настоящая проблема.
Как я вызвал это и как его исправить?
Ответы
Ответ 1
Это происходит, когда вы нажимаете на не-голый репо. Голый репо - это тот, который состоит исключительно из каталога .git
; не-голого репо также включает в себя выписку. В общем, вы не должны нажимать на не-голый репо; фактически, в будущей версии git, что будет запрещено. Если вы нажмете на не-голый репо, тогда HEAD этого репо будет не синхронизирован с индексом и рабочей копией.
Если вы создаете репо, к которому люди захотят нажать, вам следует создать его с помощью git init --bare
(и git init --bare --shared
, если к нему нужно получить доступ к нескольким учетным записям пользователей) или git clone --bare
, если вы создавая его, клонируя существующее репо.
Ответ 2
Короче говоря, ваш удаленный репозиторий уже не голый, и вы нажимаете на ветку удаленного контроля.
См. " Как опубликовать репозиторий Git:
Голый репозиторий - это один без проверочной рабочей копии кода. Он содержит только базу данных Git.
Как правило, вы не должны вдаваться в репозиторий, который содержит изменения в рабочей копии.
Чтобы этого не произошло, мы делаем репозиторий сервера открытым репозиторием - он не имеет рабочей копии
Из здесь:
Обратите внимание, что целью "push" обычно является репозиторий голый (т.е. без собственного дерева работ).
Вы также можете нажать на репозиторий, в котором есть извлеченное рабочее дерево, но рабочее дерево
не будет обновляться нажатием.
Это может привести к непредвиденным результатам, если ветка, на которую вы нажимаете, является текущей ветвью.
Если определено отдельное дерево работы (которое может, например, соответствовать веб-серверу DocumentRoot), вам необходимо:
Проверьте в своем удаленном репозитории значение git config core.worktree
и git config core.bare
Ответ 3
Я сделал мой репозиторий открытым, клонировав новый, открытый, репозиторий из моего испорченного, сохранив навсегда испорченный, и заменив его моим клонированным голосом.
Я новичок в git, и когда я настроил репозиторий, я забыл использовать опцию --bare. Спасибо за вашу помощь!
С тех пор я прочитал книгу O'Reilly git и теперь являюсь полным конвертером git.