Почему в локальном репозитории Git основная ветка называется "master", а в GitHub она называется "main"?

Почему основная ветка в локальном репозитории 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.
  • 10 декабря 2024 г. 14:53
Ответы на вопрос 4
Различие в названиях основной ветки (по умолчанию) в 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". 
В общем дурдом! Но компания "западная" и там так видят.

Подробнее можно прочитать на opennet.ru
Разница в именах веток master и main связана с изменениями в настройках по умолчанию, которые были введены в Git и GitHub. 
Ранее в Git основная ветка по умолчанию называлась master . Это было стандартом на протяжении многих лет.
В 2020 году GitHub и другие платформы начали переходить на использование main в качестве основной ветки по умолчанию.

Если вы хотите, чтобы ваша локальная ветка соответствовала удаленной ветке main, вы можете переименовать ее:
git branch -m master main

Затем выполните:
git push -u origin main

Это создаст ветку main на удаленном репозитории и установит ее как upstream для вашей локальной ветки main .
Попробуйте так: 
git push origin/main master
Почему у вас ветки разбежались - могут быть разные причины, но все дело рук человеческих. Можете сделать ветку с таким названием как вам удобно, а старую удалить.
Сами имена веток master/main - никак не стандартизированы, просто общепринятые названия. Вы вольны использовать любое название вашей основной ветки.
https://stackoverflow.com/questions/69786766/git-g...
Похожие вопросы