Git & Version Control

Проверка имени ветки Gitс указанием места ошибки

Проверьте одну ветку, ссылку или хеш объекта. Синтаксические ошибки отделены от рекомендаций по именованию.

Проверка имени ветки Git

Имя или хеш

Отчёт проверки

Введите имя или хеш.

Проверка выполняется в браузере без отправки текста и доступа к репозиторию.

Параметры проверки

Одно значение, до 4 096 единиц UTF-16. Диагностики выводятся по 50.

Введите имя или хеш.

Проверка имени ветки Git помогает разобраться, почему команда отклоняет внешне обычное название. Случайный пробел, точка в начале компонента пути или суффикс .lock могут остаться незамеченными, если терминал сообщает только общий отказ.

Сначала укажите назначение текста. main подходит для ветки, но одноуровневое имя ссылки требует отдельного разрешения. Строка из сорока шестнадцатеричных знаков тоже может означать полный идентификатор или сокращение — это зависит от выбранного алгоритма.

Проверка имени ветки Git с сохранением исходного текста

Найти причину до переименования

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

Выделенный ошибочный фрагмент имени соединён с отдельной карточкой диагностики

Не путать сокращение с уникальностью

Короткий хеш удобен в заметках к выпуску, но с тех же символов могут начинаться другие объекты. Отчёт различает полную и сокращённую формы, берёт префикс только из имеющихся знаков и не восстанавливает неизвестное окончание.

Начало длинной последовательности перенесено в короткую строку, а состояние репозитория остаётся неизвестным

Выберите контекст перед чтением результата

01

Сравните ветку и ссылку

При смене режима текст остаётся прежним. Проверьте main как ветку и refs/heads/main как ссылку. Разрешение одного уровня отменяет только требование косой черты для имени ссылки.

  • Остальные правила, включая запрет точки в конце и повторных разделителей, сохраняются.
02

Укажите алгоритм хеша

Полная форма SHA-1 содержит 40 знаков, SHA-256 — 64. Если сокращения разрешены, длина от 4 до полной длины минус один считается сокращённым форматом.

  • По умолчанию показываются семь знаков, но строка из четырёх не дополняется нулями.
03

Используйте актуальный отчёт

Автопроверка ждёт 350 мс после изменения. Отключите её для ручного запуска или нажмите Ctrl/Cmd + Enter. Нажатие на диагностику переводит редактор к соответствующей строке и столбцу.

  • Изменения сразу блокируют старый экспорт. Завершённый отчёт с ошибками можно сохранить для разбора.

Разные правила для имён и идентификаторов

Допустимое имя ветки в нужном режиме

Для веток дополнительно запрещены HEAD и начальный дефис. В режиме ссылки один уровень можно разрешить явно. Логика соответствует правилам git check-ref-format для буквальных имён и не раскрывает историю предыдущих переключений.

Позиции для невидимых и специальных знаков

Проверяются управляющие ASCII-символы, пробелы, запрещённая пунктуация и сочетания .. или @{. Компонент пути не может начинаться с точки или оканчиваться на .lock. Строки и столбцы нумеруются с единицы; столбцы и смещения JSON измеряются единицами UTF-16.

Отдельный вариант названия

Генератор использует строчные ASCII-буквы, цифры и ._-/; прочие символы заменяет дефисами, исправляет запрещённые структуры и повторно проверяет результат. Транслитерации нет. Если пригодных букв или цифр не осталось, предлагается branch.

Явное толкование формата хеша

Отчёт сохраняет алгоритм, длину, полную или сокращённую форму и показанный префикс. Прописные шестнадцатеричные буквы остаются прежними. Сорок знаков при SHA-256 считаются сокращением. Хеш содержимого файла не вычисляется, а идентификаторы между алгоритмами не преобразуются.

Что нельзя установить по одной строке

Существование и тип объекта неизвестны
Правильный формат не доказывает наличие коммита, уникальность префикса или возможность создать ветку. Конфликты между foo и foo/bar, права доступа, защита веток и ограничения файловой системы проверяются в реальном репозитории.
Один исходный текст без скрытой очистки
Начальные и конечные пробелы не удаляются. Перенос строки является запрещённым символом, а не разделителем пакетного списка. Выражения HEAD~1, main^, @{-1} и refspec с подстановочными знаками не поддерживаются. Загрузка файлов и получение содержимого по URL не предусмотрены.
Рекомендация не равна синтаксическому запрету
Git допускает некоторые специальные символы, которые оболочка интерпретирует по-своему. Советы по ASCII и ограничения GitHub для префикса refs/ или сорока шестнадцатеричных знаков показаны отдельно. Пользовательские регулярные выражения команды и списки защищённых имён здесь не применяются.
Собственный предел обработки
Одна строка ввода может содержать до 4 096 кодовых единиц UTF-16. Это ограничение инструмента, а не универсальная длина имени в Git. Диагностики показаны порциями по 50; копирование и скачивание JSON сохраняют весь завершённый отчёт, в том числе сообщения об ошибках.
Замена после просмотра
Примеры и очистка сначала показывают новый текст и число символов до и после изменения. Применение заменяет ввод, а однократная отмена возвращает текст, параметры и состояние отчёта. Предложенное имя можно только скопировать; равенство смысла не гарантируется. Слишком длинный вариант не обрезается ради видимости корректности.

Проверка имени ветки Git: частые вопросы

Как проверить допустимость имени ветки Git?

Для буквального названия выберите режим ветки. В своей оболочке можно использовать git check-ref-format --branch, передав имя как корректно защищённый аргумент. main и master не запрещены синтаксисом лишь потому, что команда часто их защищает. Успешная проверка не гарантирует успешное создание.

Какие символы запрещены в имени ветки?

Запрещены управляющие ASCII-символы, пробелы, ~, ^, :, ?, *, [ и обратная косая черта. Дополнительные правила действуют для сочетаний и границ компонентов. При этом ] и $ сами по себе не означают ошибку Git: для оболочки могут потребоваться кавычки или другое экранирование.

Почему check-ref-format отвергает master без --branch?

По умолчанию команда проверяет имя ссылки и требует косую черту. С --branch проверяется короткое название в пространстве имён веток. Выберите правильный контекст, а не дописывайте произвольный разделитель: косая черта в конце тоже недопустима.

Как определяется длина короткого хеша коммита?

Git ищет префикс, уникальный среди объектов конкретного репозитория. Минимальная запрашиваемая длина равна четырём, а значение по умолчанию зависит от core.abbrev. Семь знаков здесь — лишь настройка отображения. После добавления объектов прежнее сокращение может стать неоднозначным.

Как проверить наличие коммита в репозитории по SHA-1?

Нужно обратиться к нужному репозиторию. Например, git cat-file -e позволяет проверить существование подходящего выражения объекта; принадлежность к типу commit требует отдельного учёта типа. Строка правильной длины, состоящая из шестнадцатеричных знаков, не доказывает существование объекта.

Остался вопрос?

Свяжите результат с реальным репозиторием

Проверка имени ветки Git объясняет требования к записи. Наличие объекта, уникальность и права подтвердите в репозитории, где собираетесь использовать это имя.