Почему основная ветка в локальном репозитории Git называется "master", а на GitHub она называется "main"? В результате, когда я выполняю команду "git push origin main", появляется ошибка: <br/> error: src refspec main does not match any <br/> error: failed to push some refs to 'github.com:evey/scheduleot.git' <br/> Поскольку я не могу выполнить эту команду, мне приходится использовать "git push origin master". В результате в репозитории на GitHub создается новая ветка "master", и в нее добавляются файлы, которые я коммитил, в то время как в ветке "main" остаются только README.md и .gitignore.
Различие в названиях основной ветки (по умолчанию) в Git и GitHub связано с изменениями, направленными на улучшение инклюзивности в сообществе разработчиков.
1. **Изменение названия основной ветки**:
- В традиционном Git главная ветка по умолчанию называлась `master`. Однако со временем это слово стало восприниматься как потенциально оскорбительное, связанное с историей рабства и подавления.
- В 2020 году GitHub решил изменить название основной ветки на `main`. Эта инициатива была поддержана многими разработчиками и сообществами, и она привела к тому, что многие инструменты и проекты начали переходить на `main` как название основной ветки.
2. **Разные настройки локального и удаленного репозитория**:
- Когда вы создаете локальный репозиторий, он может по умолчанию использовать `master` в зависимости от версии Git, которую вы используете, и ваших настроек.
- Если вы создаете новый проект на GitHub, он по умолчанию использует `main` для основной ветки, что может вызвать путаницу.
3. **Ошибки с push**:
- Ошибка `error: src refspec main does not match any` означает, что локальная ветка `main` не существует. Вы, скорее всего, находитесь на ветке `master`, и, следовательно, когда вы пытаетесь выполнить `git push origin main`, Git не может найти такую ветку в вашем локальном репозитории.
- Для того чтобы устранить эту проблему, вы можете либо создать ветку `main` в вашем локальном репозитории с помощью `git checkout -b main`, сделать ваши изменения в этой ветке и затем выполнить `git push origin main`, либо продолжать использовать `master` для пуша в репозиторий на GitHub, если это не создает конфликтов.
4. **Решение**:
- Чтобы синхронизировать имя основной ветки вашего локального репозитория с удаленным репозиторием на GitHub, вы можете перейти на новую ветку `main`. Для этого выполните следующие команды:
```bash
git checkout -b main # Создает и переключается на новую ветку main
git push -u origin main # Пушит ветку на GitHub и устанавливает её как отслеживаемую
```
- Также проверьте настройки вашего репозитория, чтобы изменить имя основной ветки на `main` в настройках репозитория на GitHub, если это необходимо.
Потому что "политкорректность" и потомки рабов, якобы, обижаются на слово "master". <br/> В общем дурдом! Но компания "западная" и там так видят. <br/> <br/> Подробнее можно прочитать на <a href="https://www.opennet.ru/opennews/art.shtml?num=53156" rel="nofollow">opennet.ru</a>
Разница в именах веток <code>master</code> и <code>main</code> связана с изменениями в настройках по умолчанию, которые были введены в Git и GitHub. <br/> Ранее в Git основная ветка по умолчанию называлась <code>master</code> . Это было стандартом на протяжении многих лет. <br/> В 2020 году GitHub и другие платформы начали переходить на использование <code>main</code> в качестве основной ветки по умолчанию. <br/> <br/> Если вы хотите, чтобы ваша локальная ветка соответствовала удаленной ветке main, вы можете переименовать ее: <br/> <code>git branch -m master main</code> <br/> <br/> Затем выполните: <br/> <code>git push -u origin main</code> <br/> <br/> Это создаст ветку <code>main</code> на удаленном репозитории и установит ее как upstream для вашей локальной ветки <code>main</code> .
Попробуйте так: <br/> <code class="bash">git push origin/main master</code> <br/> Почему у вас ветки разбежались - могут быть разные причины, но все дело рук человеческих. Можете сделать ветку с таким названием как вам удобно, а старую удалить. <br/> Сами имена веток master/main - никак не стандартизированы, просто общепринятые названия. Вы вольны использовать любое название вашей основной ветки. <br/> <a href="https://stackoverflow.com/questions/69786766/git-github-origin-main-vs-origin-master" rel="nofollow">https://stackoverflow.com/questions/69786766/git-g...</a>