Подтвердить что ты не робот

Почему Git хочет, чтобы я тянул, прежде чем надавить?

Я создавал новый репозиторий на GitHub и пытался нажать на него, но Git продолжал давать мне сообщение об ошибке:

error: не удалось нажать несколько ссылок на...

В конце концов я попытался потянуть сначала, а затем нажать, и это сработало. Но почему?

4b9b3361

Ответ 1

Вы упомянули, что вы создаете новый репозиторий.

Хотя ответ и комментарии также верны, скорее всего, вы единственный человек, взаимодействующий с репозиторием. Вам нужно было тянуть, потому что вы инициализировали репозиторий с помощью README на GitHub (это, скорее всего, учебник, которым вы следовали).

Если вы не инициализировали репозиторий с помощью README, то это означает, что GitHub не сделал первого коммита "README.md", у вас будет полностью пустой репозиторий, на который вы можете напрямую нажать.

Причина, по которой GitHub имеет этот параметр, скорее всего, поможет пользователям, которые начинают новый проект (например, вы сами), очень легко начать работу после настройки репозитория на GitHub,/clone и с этим первоначальным фиксацией, позволяя вам быстро добавлять новые файлы и нажимать.

Дополнительно, инициализируя репозиторий README, у вас будет мастер-ветвь, готовая клонировать и запускать файлы отслеживания. Хотя в полностью пустом репозитории вы будете получать уведомления от Git, например:

warning: You appear to have cloned an empty repository.

Без инициализации вы также должны будете нажимать первый раз, чтобы первый раз явным образом обрабатывал с помощью git push origin master, так как Git будет вежливо сказать вам:

No refs in common and none specified; doing nothing.
Perhaps you should specify a branch such as 'master'.
Everything up-to-date

Подводя итог, это было первое коммит (см. ваши коммиты, и вы увидите первый README commit), который помешал вам нажать, не вытаскивая, поскольку ваш локальный репозиторий не синхронизирован с репозиторий на GitHub.

Ответ 2

Чтобы так, чтобы любые параллельные изменения, сделанные кем-то другим, а затем проверенные, были приведены в вашу среду разработки для слияния и тестирования. Таким образом, количество параллельных, неинтегрированных изменений сохраняется до минимального уровня

Ответ 3

В вашем случае GitHub автоматически создал первый файл фиксации (часто README.md и LICENSE), и для того, чтобы нажимать ваши коммиты, вы должны сначала вытащить (извлечь и слить) GitHub commit.

Ответ 4

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