Git нажмите только для голых репозиториев?

Когда я попробовал 'git нажать источник оригинала' в удаленный репозиторий на моем внешнем диске, появилось предупреждение git, указывающее, что pusing для репозитория проверки будет в следующих выпусках git отказано по умолчанию. На внешнем диске у меня есть проверенный проект, и я хочу отправить изменения, которые я сделал на свой компьютер, на эти репозитории. Является ли 'git нажатием оригинала оригинала' правильным? Мне нужно "git pull..." в репозитории на моем внешнем диске? Поэтому я не могу подталкивать изменения, а просто тянуть их? Разная работа с "голым" репозиторием отличается? Так что, если репозиторий на моем внешнем диске был открытым хранилищем, я мог бы внести в него изменения? Я правильно понимаю?

Ответ 1

Внимательно прочитайте предупреждение. Новый запрет по умолчанию заключается только в том, чтобы нажать на текущую проверенную ветку в не-голом репозитории. Совершенно нормально нажать на любую другую ветку в не-голом репозитории.

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

Нажатие на другие ветки не имеет таких недостатков. Затем вы можете перейти в этот репозиторий и объединить эти изменения в отмеченную ветку, если хотите.

Ответ 2

Вам не следует нажимать на не-голый репозиторий, потому что нажатие будет только обновлять внутреннее состояние репо и не повлияет на извлеченные копии на диске на диске. Таким образом, вы можете столкнуться с проблемами, если начнете выполнять работу в этом репо без предварительного обновления (через git checkout) на диске копии состояния файлов в репо.