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.51.1 no changes
-
2.51.0
2025-08-18
- 2.50.1 no changes
-
2.50.0
2025-06-16
- 2.44.1 → 2.49.1 no changes
-
2.44.0
2024-02-23
- 2.43.1 → 2.43.7 no changes
-
2.43.0
2023-11-20
- 2.41.1 → 2.42.4 no changes
-
2.41.0
2023-06-01
- 2.40.1 → 2.40.4 no changes
-
2.40.0
2023-03-12
- 2.39.4 → 2.39.5 no changes
-
2.39.3
2023-04-17
- 2.38.1 → 2.39.2 no changes
-
2.38.0
2022-10-02
- 2.37.1 → 2.37.7 no changes
-
2.37.0
2022-06-27
- 2.36.1 → 2.36.6 no changes
-
2.36.0
2022-04-18
- 2.35.1 → 2.35.8 no changes
-
2.35.0
2022-01-24
- 2.34.1 → 2.34.8 no changes
-
2.34.0
2021-11-15
- 2.33.2 → 2.33.8 no changes
-
2.33.1
2021-10-12
- 2.31.1 → 2.33.0 no changes
-
2.31.0
2021-03-15
- 2.30.1 → 2.30.9 no changes
-
2.30.0
2020-12-27
- 2.29.1 → 2.29.3 no changes
-
2.29.0
2020-10-19
- 2.28.1 no changes
-
2.28.0
2020-07-27
- 2.23.1 → 2.27.1 no changes
-
2.23.0
2019-08-16
- 2.22.2 → 2.22.5 no changes
-
2.22.1
2019-08-11
-
2.22.0
2019-06-07
- 2.21.1 → 2.21.4 no changes
-
2.21.0
2019-02-24
- 2.20.1 → 2.20.5 no changes
-
2.20.0
2018-12-09
- 2.19.1 → 2.19.6 no changes
-
2.19.0
2018-09-10
- 2.18.1 → 2.18.5 no changes
-
2.18.0
2018-06-21
- 2.17.0 → 2.17.6 no changes
-
2.16.6
2019-12-06
-
2.15.4
2019-12-06
-
2.14.6
2019-12-06
-
2.13.7
2018-05-22
-
2.12.5
2017-09-22
- 2.10.5 → 2.11.4 no changes
-
2.9.5
2017-07-30
- 2.8.6 no changes
-
2.7.6
2017-07-30
-
2.6.7
2017-05-05
- 2.5.6 no changes
-
2.4.12
2017-05-05
- 2.1.4 → 2.3.10 no changes
-
2.0.5
2014-12-17
СИНОПСИС
gitbranch[--color[=<when>] |--no-color] [--show-current] [-v[--abbrev=<n> |--no-abbrev]] [--column[=<options>] |--no-column] [--sort=<key>] [--merged[<commit>]] [--no-merged[<commit>]] [--contains[<commit>]] [--no-contains[<commit>]] [--points-at<object>] [--format=<format>] [(-r|--remotes) | (-a|--all)] [--list] [<pattern>…]gitbranch[--track[=(direct|inherit)] |--no-track] [-f] [--recurse-submodules] <branch-name> [<start-point>]gitbranch(--set-upstream-to=<upstream>|-u<upstream>) [<branch-name>]gitbranch--unset-upstream[<branch-name>]gitbranch(-m|-M) [<old-branch>] <new-branch>gitbranch(-c|-C) [<old-branch>] <new-branch>gitbranch(-d|-D) [-r] <branch-name>…gitbranch--edit-description[<branch-name>]
ОПИС
Якщо вказано --list, або якщо немає аргументів, що не є опціями, буде перераховано існуючі гілки; поточна гілка буде виділена зеленим кольором та позначена зірочкою. Будь-які гілки, витягнуті у зв’язаних робочих деревах, будуть виділені блакитним кольором та позначені знаком плюс. Опція -r призведе до відображення списку гілок віддаленого відстеження, а опція -a покаже як локальні, так і віддалені гілки.
Якщо задано <шаблон>, він використовується як шаблон оболонки для обмеження виводу до відповідних гілок. Якщо задано кілька шаблонів, гілка відображається, якщо вона відповідає будь-якому з шаблонів.
Зверніть увагу, що під час надання <шаблон> необхідно використовувати --list; інакше команда може бути інтерпретована як створення гілки.
З параметром --contains відображаються лише гілки, що містять іменований коміт (іншими словами, гілки, кінчики комітів яких є нащадками іменованого коміту), --no-contains інвертує його. З параметром --merged будуть перелічені лише гілки, об’єднані з іменованим комітом (тобто гілки, кінчики комітів яких доступні з іменованого коміту). З параметром --no-merged будуть перелічені лише гілки, не об’єднані з іменованим комітом. Якщо аргумент <commit> відсутній, він за замовчуванням має значення HEAD (тобто кінчик поточної гілки).
Друга форма команди створює новий заголовок гілки з назвою <назва-гілки>, який вказує на поточну HEAD, або <початкову-точку>, якщо задано. Як окремий випадок, для <початкової-точки>, ви можете використовувати <rev-A>...<rev-B> як скорочення для бази злиття <rev-A> та <rev-B>, якщо існує лише одна база злиття. Ви можете пропустити щонайбільше один з <rev-A> та <rev-B>, і в цьому випадку за замовчуванням використовується HEAD.
Зверніть увагу, що це створить нову гілку, але не переключить на неї робоче дерево; використовуйте git switch <new-branch> для перемикання на нову гілку.
Коли локальна гілка запускається з гілки віддаленого відстеження, Git налаштовує гілку (зокрема, записи конфігурації branch.<name>.remote та branch.<name>.merge) таким чином, щоб git pull належним чином зливався з гілкою віддаленого відстеження. Цю поведінку можна змінити за допомогою глобального прапорця конфігурації branch.autoSetupMerge. Цей параметр можна перевизначити за допомогою опцій --track та --no-track, а пізніше змінити за допомогою git branch --set-upstream-to.
З опцією -m або -M, <old-branch> буде перейменовано на <new-branch>. Якщо <old-branch> мала відповідний reflog, вона перейменовується відповідно до <new-branch>, і створюється запис reflog для запам’ятовування перейменування гілки. Якщо <new-branch> існує, для примусового перейменування необхідно використовувати -M.
Опції -c та -C мають точно таку ж семантику, як -m та -M, за винятком того, що замість перейменування гілки вона буде скопійована під новою назвою разом з її конфігурацією та рефлогом.
З опцією -d або -D, <назва-гілки> буде видалено. Ви можете вказати більше однієї гілки для видалення. Якщо гілка наразі має журнал перепису, то журнал перепису також буде видалено.
Використовуйте -r разом з -d для видалення гілок віддаленого відстеження. Зверніть увагу, що видаляти гілки віддаленого відстеження має сенс лише тоді, коли вони більше не існують у віддаленому репозиторії або якщо git fetch було налаштовано не отримувати їх знову. Дивіться також підкоманду prune команди git-remote[1], щоб дізнатися, як очистити всі застарілі гілки віддаленого відстеження.
ОПЦІЇ
-
-d -
--delete -
Видалити гілку. Гілку необхідно повністю об’єднати з її гілкою upstream або з
HEAD, якщо upstream не було встановлено за допомогою--trackабо--set-upstream-to. -
-D -
Скорочення для
--delete--force. -
--create-reflog -
Створити журнал записів гілки. Це активує запис усіх змін, внесених до посилання гілки, що дозволяє використовувати sha1-вирази на основі дати, такі як <назва-гілки>
@{yesterday}. Зверніть увагу, що в нечистих репозиторіях журнали записів зазвичай увімкнено за замовчуванням параметром конфігураціїcore.logAllRefUpdates. Заперечувана форма--no-create-reflogлише перевизначає попереднє--create-reflog, але наразі не скасовує налаштуванняcore.logAllRefUpdates. -
-f -
--force -
Скинути <назва-гілки> до <початкова-точка>, навіть якщо <назва-гілки> вже існує. Без
-f,gitbranchвідмовляється змінювати існуючу гілку. У поєднанні з-d(або--delete) дозволяє видалення гілки незалежно від її статусу об’єднання, або від того, чи вказує вона на дійсний коміт. У поєднанні з-m(або--move) дозволяє перейменування гілки, навіть якщо нова назва гілки вже існує, те саме стосується-c(або--copy).Зверніть увагу, що
gitbranch-f<назва-гілки> [<початкова-точка>], навіть з-f, відмовляється змінювати існуючу гілку <назва-гілки>, яка витягнута з іншого робочого дерева, пов’язаного з тим самим репозиторієм. -
-m -
--move -
Перемістити/перейменувати гілку разом з її конфігурацією та перефлогом.
-
-M -
Скорочення для
--move--force. -
-c -
--copy -
Скопіюйте гілку разом з її конфігурацією та рефлогом.
-
-C -
Скорочення для
--copy--force. -
--color[=<when>] -
Виділіть поточні, локальні та віддалено відстежувані гілки кольором. Значення має бути
always(за замовчуванням),neverабоauto. -
--no-color -
Вимкнути кольори гілок, навіть якщо у файлі конфігурації задано кольоровий вивід за замовчуванням. Те саме, що й
--color=never. -
-i -
--ignore-case -
Сортування та фільтрація гілок не враховують регістр.
-
--omit-empty -
Не друкуйте новий рядок після відформатованих посилань, де формат розгортається до порожнього рядка.
-
--column[=<опція>] -
--no-column -
Відображати список гілок у стовпцях. Синтаксис опцій дивіться у змінній конфігурації
column.branch.--columnта--no-columnбез опцій еквівалентніalwaysтаneverвідповідно.Цей параметр застосовується лише в недетальному режимі.
-
--sort=<ключ> -
Сортування на основі <ключ>. Додайте префікс
-для сортування у порядку спадання значення. Ви можете використовувати опцію--sort=<ключ> кілька разів, і в цьому випадку останній ключ стає первинним ключем. Підтримувані ключі такі ж, як у git-for-each-ref[1]. Порядок сортування за замовчуванням встановлюється на значення, налаштоване для змінноїbranch.sort, якщо вона існує, або на основі повного імені посилання (включаючи префіксrefs/...). Спочатку відображаються відокремленіHEAD(якщо є), потім локальні гілки і, нарешті, гілки з віддаленим відстеженням. Див. git-config[1]. -
-r -
--remotes -
Перерахувати або видалити (якщо використовується з
-d) гілки віддаленого відстеження. Поєднайте з--listдля відповідності необов’язковим шаблонам. -
-a -
--all -
Перелічіть як гілки віддаленого відстеження, так і локальні гілки. Поєднуйте з
--listдля відповідності необов’язковим шаблонам. -
-l -
--list -
Список гілок. З необов’язковим параметром <шаблон>..., наприклад,
gitbranch--listmaint-*', список лише тих гілок, що відповідають шаблону(ам). -
--show-current -
Вивести назву поточної гілки. У відокремленому стані
HEADнічого не виводиться. -
-v -
-vv -
--verbose -
У режимі списку, виведіть sha1 та рядок теми коміта для кожного head, разом із зв’язком з гілкою вище за тегом (якщо така є). Якщо вказано двічі, виведіть шлях до пов’язаного робочого дерева (якщо таке є) та назву гілки вище за тегом (див. також
gitremoteshow<remote>). Зверніть увагу, що шлях доHEADпоточного робочого дерева не буде виведено (це завжди буде ваш поточний каталог). -
-q -
--quiet -
Бути тихішим під час створення або видалення гілки, пригнічуючи повідомлення, що не пов’язані з помилками.
-
--abbrev=<n> -
У детальному списку, що показує назву об’єкта коміту, покажіть найкоротший префікс довжиною щонайменше <n> шістнадцяткових цифр, який унікально посилається на об’єкт. Значення за замовчуванням — 7, його можна змінити за допомогою опції конфігурації
core.abbrev. -
--no-abbrev -
Відображати повні sha1 у вихідному списку, а не скорочувати їх.
-
-t -
--track[=(direct|inherit)] -
Під час створення нової гілки налаштуйте записи конфігурації
branch.<name>.remoteтаbranch.<name>.merge, щоб встановити конфігурацію відстеження "upstream" для нової гілки. Ця конфігурація вкаже git відображати зв’язок між двома гілками вgitstatusтаgitbranch-v. Крім того, вона направляєgitpullбез аргументів на витягування з upstream, коли нова гілка буде виведена.Точна гілка початкової точки вибирається залежно від необов’язкового аргументу:
-t,--trackабо--track=directозначає використовувати саму гілку початкової точки як гілку початкової точки;--track=inheritозначає копіювати конфігурацію гілки початкової точки початкової точки.Змінна конфігурації
branch.autoSetupMergeвизначає, як повинні поводитисяgitswitch,gitcheckoutтаgitbranch, коли не вказано ні--track, ні--no-track:Параметр за замовчуванням,
true, поводиться так, ніби--track=directбуло задано щоразу, коли початкова точка є гілкою віддаленого відстеження.falseповодиться так, ніби--no-track.alwaysповодиться так, ніби--track=direct.inheritповодиться так, ніби--track=inherit.simpleповодиться так, ніби--track=directбуло задано лише тоді, коли <початкова точка> є гілкою віддаленого відстеження, а нова гілка має таку ж назву, як і віддалена гілка.Дивіться git-pull[1] та git-config[1] для додаткового обговорення використання опцій
branch.<name>.remoteтаbranch.<name>.merge. -
--no-track -
Не налаштовуйте конфігурацію "upstream", навіть якщо встановлено змінну конфігурації
branch.autoSetupMerge. -
--recurse-submodules -
ЦЕЙ ОПЦІЯ ЕКСПЕРИМЕНТАЛЬНА! Змушує поточну команду рекурсивно перетворюватися на підмодулі, якщо увімкнено
submodule.propagateBranches. Див.submodule.propagateBranchesу git-config[1]. Наразі підтримується лише створення гілок.При використанні у створенні гілки, нова гілка <назва-гілки> буде створена в суперпроекті та всіх підмодулях у <початковій-точці> суперпроекту. У підмодулях гілка вказуватиме на коміт підмодуля в <початковій-точці> суперпроекту, але інформація про відстеження гілки буде налаштована на основі гілок та віддалених гілок підмодуля, наприклад,
gitbranch--recurse-submodulestopicorigin/mainстворить гілку підмодуля "topic", яка вказує на коміт підмодуля в "origin/main" суперпроекту, але відстежує "origin/main" підмодуля. -
--set-upstream -
Оскільки цей параметр мав заплутаний синтаксис, він більше не підтримується. Будь ласка, використовуйте замість нього
--trackабо--set-upstream-to. - -u <вище за течією>
- --set-upstream-to=<вище за течією>
-
Налаштуйте інформацію відстеження <назва-гілки> таким чином, щоб <вищепотокова> вважалася гілкою вищого рівня <назва-гілки>. Якщо <назва-гілки> не вказано, то за замовчуванням використовується поточна гілка.
-
--unset-upstream -
Видалити інформацію про початковий рівень для <назва-гілки>. Якщо гілка не вказана, за замовчуванням використовується поточна гілка.
-
--edit-description -
Відкрийте редактор і відредагуйте текст, щоб пояснити, для чого призначена гілка, щоб її використовували різні інші команди (наприклад,
format-patch,request-pullтаmerge(якщо увімкнено)). Можна використовувати багаторядкові пояснення. -
--contains[<коміт>] -
Перераховувати лише гілки, що містять <commit> (
HEAD, якщо не вказано). Має на увазі--list. -
--no-contains[<коміт>] -
Перелічувати лише гілки, що не містять <commit> (
HEAD, якщо не вказано). Має на увазі--list. -
--merged[<коміт>] -
Перелічувати лише гілки, підказки яких доступні з <commit> (
HEAD, якщо не вказано). Має на увазі--list. -
--no-merged[<коміт>] -
Перелічувати лише гілки, поради яких недоступні з <commit> (
HEAD, якщо не вказано). Має на увазі--list. - --points-at <об'єкт>
-
Перелічувати лише гілки <об’єкта>.
-
--format<формат> -
Рядок, який інтерполює %(ім'я поля) з посилання на гілку, що відображається, та об’єкта, на який воно вказує. <формат> такий самий, як і у git-for-each-ref[1].
- <назва-гілки>
-
Назва гілки для створення або видалення. Нова назва гілки має пройти всі перевірки, визначені в git-check-ref-format[1]. Деякі з цих перевірок можуть обмежувати кількість символів, дозволених у назві гілки.
- <start-point>
-
Новий заголовок гілки вказуватиме на цей коміт. Його можна вказати як назву гілки, ідентифікатор коміту або тег. Якщо цей параметр пропущено, замість нього буде використано поточний
HEAD. - <стара гілка>
-
Назва існуючої гілки. Якщо цей параметр пропущено, замість нього буде використано назву поточної гілки.
- <нова гілка>
-
Нова назва існуючої гілки. Застосовуються ті ж обмеження, що й для <назва-гілки>.
КОНФІГУРАЦІЯ
pager.branch враховується лише під час перерахування гілок, тобто коли використовується або мається на увазі --list. За замовчуванням використовується пейджер. Див. git-config[1].
Все, що знаходиться вище цього рядка в цьому розділі, не включено до документації git-config[1]. Наступний вміст такий самий, як і той, що знаходиться там:
|
Warning
|
Missing See original version for this content. |
ПРИКЛАДИ
- Почати розробку з відомого тегу
-
$ git clone git://git.kernel.org/pub/scm/.../linux-2.6 my2.6 $ cd my2.6 $ git branch my2.6.14 v2.6.14 (1) $ git switch my2.6.14
-
Цей крок та наступний можна об’єднати в один за допомогою "checkout -b my2.6.14 v2.6.14".
-
- Видалити непотрібну гілку
-
$ git clone git://git.kernel.org/.../git.git my.git $ cd my.git $ git branch -d -r origin/todo origin/html origin/man (1) $ git branch -D test (2)
-
Видаліть гілки віддаленого відстеження "todo", "html" та "man". Наступні команди
gitfetchабоgitpullзнову їх створить, якщо ви не налаштуєте їх інакше. Див. git-fetch[1]. -
Видалити гілку "test", навіть якщо гілка "master" (або будь-яка гілка, що наразі вивантажена) не містить усіх комітів з гілки test.
-
- Перелік гілок з певного віддаленого сервера
-
$ git branch -r -l '<remote>/<pattern>' (1) $ git for-each-ref 'refs/remotes/<remote>/<pattern>' (2)
-
Використання
-aпризведе до об’єднання <remote> з будь-якими локальними гілками, до яких випадково додано префікс з тим самим шаблоном <remote>. -
for-each-refможе приймати широкий спектр опцій. Див. git-for-each-ref[1]
-
Зазвичай шаблони потребують цитування.
НОТАТКИ
Якщо ви створюєте гілку, на яку хочете негайно перейти, простіше використовувати команду git switch з її опцією -c, щоб зробити те саме за допомогою однієї команди.
Опції --contains, --no-contains, --merged та --no-merged виконують чотири пов’язані, але різні функції:
-
--contains<commit> використовується для пошуку всіх гілок, яким потрібно буде приділити особливу увагу, якщо <commit> буде перебазовано або змінено, оскільки ці гілки містять вказаний <commit>. -
--no-contains<commit> є інверсією цього, тобто гілки, які не містять зазначеного <commit>. -
--mergedвикористовується для пошуку всіх гілок, які можна безпечно видалити, оскільки ці гілки повністю містяться вHEAD. -
--no-mergedвикористовується для пошуку гілок, які є кандидатами для об’єднання зHEAD, оскільки ці гілки не повністю містяться вHEAD.
Під час поєднання кількох фільтрів --contains та --no-contains відображаються лише посилання, які містять принаймні один з комітів --contains та не містять жодного з комітів --no-contains.
Під час об’єднання кількох фільтрів --merged та --no-merged відображаються лише посилання, досяжні принаймні з одного з комітів --merged та з жодного з комітів --no-merged.
ДИВ. ТАКОЖ
git-check-ref-format[1], git-fetch[1], git-remote[1], "Розуміння історії: Що таке гілка?" у Посібнику користувача Git.
GIT
Частина набору git[1]