Setup and Config
Getting and Creating Projects
Basic Snapshotting
Branching and Merging
Sharing and Updating Projects
Inspection and Comparison
Patching
Debugging
External Systems
Server Admin
Guides
- gitattributes
- Command-line interface conventions
- Everyday Git
- Frequently Asked Questions (FAQ)
- Glossary
- Hooks
- gitignore
- gitmodules
- Revisions
- Submodules
- Tutorial
- Workflows
- All guides...
Administration
Plumbing Commands
- 2.53.0 → 2.54.0 no changes
-
2.52.0
2025-11-17
- 2.43.1 → 2.51.2 no changes
-
2.43.0
2023-11-20
- 2.23.1 → 2.42.4 no changes
-
2.23.0
2019-08-16
- 2.17.0 → 2.22.5 no changes
-
2.16.6
2019-12-06
-
2.15.4
2019-12-06
- 2.13.7 → 2.14.6 no changes
-
2.12.5
2017-09-22
- 2.11.4 no changes
-
2.10.5
2017-09-22
- 2.7.6 → 2.9.5 no changes
-
2.6.7
2017-05-05
- 2.1.4 → 2.5.6 no changes
-
2.0.5
2014-12-17
СИНОПСИС
git check-ref-format [--normalize]
[--[no-]allow-onelevel] [--refspec-pattern]
<refname>
git check-ref-format --branch <branchname-shorthand>
ОПИС
Перевіряє, чи є задане «refname» є прийнятним, і завершує роботу з ненульовим статусом, якщо це не так.
Посилання використовується в Git для позначення гілок та тегів. Вершина гілки зберігається в ієрархії refs/heads, тоді як тег зберігається в ієрархії refs/tags простору імен посилань (зазвичай у теках $GIT_DIR/refs/heads та $GIT_DIR/refs/tags або як записи у файлі $GIT_DIR/packed-refs, якщо посилання упаковані за допомогою git gc).
Git встановлює такі правила щодо іменування посилань:
-
Вони можуть містити скісну риску
/для ієрархічного (теки) групування, але жоден компонент, розділений скісною рискою, не може починатися з крапки.або закінчуватися послідовністю.lock. -
Вони повинні містити принаймні один символ
/. Це забезпечує наявність категорії, такої якheads/,tags/тощо, але фактичні назви не обмежені. Якщо використовується опція--allow-onelevel, це правило не діє. -
Вони не можуть містити дві послідовні крапки
..ніде. -
Вони не можуть містити керівні символи ASCII (тобто байти, значення яких менші за \040 або \177
DEL), пробіл, тильду~, каретку^або двокрапку:будь-де. -
Вони не можуть містити знак питання ?, зірочку
*або відкриту дужку [ будь-де. Дивіться опцію--refspec-patternнижче для винятку з цього правила. -
Вони не можуть починатися або закінчуватися скісною рискою
/або містити кілька послідовних скісних (див. опцію--normalizeнижче як виняток із цього правила). -
Вони не можуть закінчуватися крапкою
.. -
Вони не можуть містити послідовність
@{. -
Вони не можуть бути одним символом
@. -
Вони не можуть містити символ \.
Ці правила спрощують для інструментів на основі скриптів оболонки розбір імен посилань, розширення шляхів оболонкою, коли імʼя посилання використовується без лапок (помилково), а також уникають неоднозначностей у певних виразах імен посилань (див. gitrevisions[7]):
-
Подвійна крапка
..часто використовується як уref1..ref2, а в деяких контекстах це позначення означає^ref1ref2(тобто не вref1, а вref2). -
Тильда
~та каретка^використовуються для позначення постфіксних операцій n-й батьківський елемент та пошарове обчищення. -
Двокрапка
:використовується, як уsrcref:dstref, для позначення «використовувати значення srcref\ та зберігати його в dstref» в операціях fetch та push. Її також можна використовувати для вибору певного обʼєкта, наприклад, у git cat-file: "git cat-file blob v1.3.3:refs.c". -
at-open-brace
@{використовується як нотація для доступу до запису reflog.
З опцією --branch команда приймає імʼя та перевіряє, чи можна його використовувати як дійсне імʼя гілки (наприклад, під час створення нової гілки). Але будьте обережні при використанні синтаксису попереднього перегляду, який може посилатися на стан відокремленого HEAD. Правило, яке реалізує git check-ref-format --branch $name, може бути суворішим, ніж те, що визначає git check-ref-format refs/heads/$name (наприклад, тире може з’являтися на початку компонента посилання, але воно категорично заборонено на початку імені гілки). При запуску з опцією --branch у репозиторії вхідні дані спочатку розширюються для «синтаксису попереднього перегляду» @{-n}. Наприклад, @{-1} — це спосіб посилання на останнє, що було переглянуто за допомогою операції git switch або git checkout. Цю опцію слід використовувати в порцелянових модулях, щоб вони приймали цю синтаксичну конструкцію скрізь, де очікується імʼя гілки, і могли діяти так, ніби ви вказали імʼя гілки. Як виняток, зверніть увагу, що операція попереднього перегляду може призвести до імені обʼєкта коміту, якщо N-та за рахунком остання перевірена річ не була гілкою.
ОПЦІЇ
- --allow-onelevel
- --no-allow-onelevel
-
Визначає, чи допускаються однорівневі імена посилань (тобто імена посилань, що не містять декількох компонентів, розділених символом
/). Зазвичай встановлено значення--no-allow-onelevel. - --refspec-pattern
-
Інтерпретувати <refname> як шаблон назви посилання для специфікації посилань (як використовується з віддаленими репозиторіями). Якщо ця опція увімкнена, <refname> може містити одну
*у специфікації посилань (наприклад,foo/bar*/bazабоfoo/bar*baz/, але неfoo/bar*/baz*). - --normalize
-
Нормалізувати refname, видаливши всі початкові символи скісної риски (
/) та об’єднавши послідовності сусідніх скісних рисок між складовими імені в одну скісну риску. Якщо нормалізоване ім’я «refname» є правильним, вивести його у стандартний вивід і завершити роботу з кодом стану 0, інакше завершити роботу з кодом стану, відмінним від нуля. (--print— застарілий варіант написання--normalize.)
ПРИКЛАДИ
-
Вивід назви попереднього переглянутого елемента:
$ git check-ref-format --branch @{-1} -
Визначення імені посилання, яке буде використовуватися для нової гілки:
$ ref=$(git check-ref-format --normalize "refs/heads/$newbranch")|| { echo "we do not like '$newbranch' as a branch name." >&2 ; exit 1 ; }
GIT
Частина набору git[1]