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.48.1 → 2.49.0 no changes
-
2.48.0
2025-01-10
- 2.46.1 → 2.47.2 no changes
-
2.46.0
2024-07-29
- 2.44.1 → 2.45.3 no changes
-
2.44.0
2024-02-23
- 2.43.2 → 2.43.6 no changes
-
2.43.1
2024-02-09
-
2.43.0
2023-11-20
- 2.39.1 → 2.42.4 no changes
-
2.39.0
2022-12-12
- 2.36.1 → 2.38.5 no changes
-
2.36.0
2022-04-18
- 2.33.1 → 2.35.8 no changes
-
2.33.0
2021-08-16
- 2.30.1 → 2.32.7 no changes
-
2.30.0
2020-12-27
- 2.23.1 → 2.29.3 no changes
-
2.23.0
2019-08-16
- 2.22.1 → 2.22.5 no changes
-
2.22.0
2019-06-07
- 2.21.1 → 2.21.4 no changes
-
2.21.0
2019-02-24
- 2.19.1 → 2.20.5 no changes
-
2.19.0
2018-09-10
- 2.18.1 → 2.18.5 no changes
-
2.18.0
2018-06-21
- 2.15.4 → 2.17.6 no changes
-
2.14.6
2019-12-06
-
2.13.7
2018-05-22
-
2.12.5
2017-09-22
- 2.9.5 → 2.11.4 no changes
-
2.8.6
2017-07-30
-
2.7.6
2017-07-30
-
2.6.7
2017-05-05
- 2.5.6 no changes
-
2.4.12
2017-05-05
- 2.3.10 no changes
-
2.2.3
2015-09-04
- 2.1.4 no changes
-
2.0.5
2014-12-17
ОПИСАНИЕ
- дополнительная (alternate) база данных объектов
-
С помощью механизма дополнения, репозиторий может наследовать часть базы данных объектов из другой базы данных объекта, которую называют «дополнительной» («alternate»).
- голый репозиторий (bare repository)
-
Голым репозиторием является каталог (как правило, названный соответствующим образом, с суффиксом
.git
), который не имеет каких-либо локальных извлечённых копий файлов, находящихся под контролем СКВ. То есть все служебные и управляющие файлы Git, которые обычно находятся в скрытом подкаталоге.git
, находятся вместо этого непосредственно в каталоге ‘repository.git’, и кроме них нет ни каких других файлов, извлечённых из СКВ. Обычно люди, которые публикуют свои репозитории делают голые репозитории общедоступными. - blob-объект, бинарный объект
-
Нетипизированный объект, например, содержимое файла.
- ветка, ветвь (branch)
-
Ветка — это линия развития или разработки. Самый последний коммит ветви называется верхушкой этой ветви. На верхушку ветки ссылается её голова, которая продвигается вперёд по мере того, как в ветке ведётся разработка. Один репозиторий Git может отслеживать произвольное количество ветвей, но ваша рабочая копия связана только с одной из них («текущей» или «извлечённой» («checked out») веткой), и HEAD указывает на эту ветвь.
- кэш
-
Устарело, то же что и индекс.
- цепочка
-
Список объектов, где каждый объект в списке содержит ссылку на своего преемника (например, преемником коммита может быть один из его родителей).
- набор изменений (changeset)
-
Название «коммитов» в BitKeeper/cvsps. Поскольку Git хранит не изменения, а состояния, то использование в Git термина «набор изменений» не имеет смысла.
- переход, переключение [ветки], извлечение [состояния] (checkout)
-
Действие обновления всего или части рабочего каталога с выгрузкой объекта-дерева или blob-объекта из базы данных объектов, а также обновлением индекса и HEAD, если весь рабочий каталог был переключён на новую ветку.
- копирование коммитов, черри-пикинг, cherry-picking
-
На жаргоне людей работающих с СКВ, «черри-пикинг» (cherry-picking) означает выбор подмножества изменений из списка изменений (обычно коммитов) и применения их к другой кодовой базе. Само название «черри-пикинг», «снятие вишенки» уподобляет это тому как вы бы взяли вишенку с одного куска торта и перенесли бы её на свой (прим. переводчика). В Git данное действие выполняется командой "git cherry-pick", которая извлекает изменения, внесённые существующим коммитом и переносит их на верхушку текущей ветки в виде нового коммита.
- чистый (clean)
-
Рабочий каталог является чистым, если он находится в том же состоянии, которое записано в ревизии, на которую ссылается текущая голова. Также см. «грязный».
- коммит, фиксировать изменения, коммитить (commit)
-
Коммит: отдельная точка в Git-истории; вся история проекта представлена как набор взаимосвязанных коммитов. Термин «коммит» обычно используется Git для обозначения того же понятия для которого другие системы управления версиями используют термины «ревизия» или «версия». Также для краткости он используется для обозначения объекта-коммита.
- граф коммитов (commit graph): концепция, представление, использование
-
Синоним для структуры направленного ациклического графа, образованной в базе данных объектов коммитами, на которые есть ссылка в цепочках коммитов, ассоциированных с верхушками веток. Эта структура является полным графом коммитов. Этот граф может быть представлен и другими способами, например, с помощью файлов «commit-graph».
- файл commit-graph
-
Файл «commit-graph» (обычно пишется через дефис) является дополнительным представлением графа коммитов, который ускоряет его обход. Файл «commit-graph» хранится либо в каталоге
.git/objects/info
, либо в каталогеinfo
дополнительной базы данных объектов. - объект-коммит
-
Объект, в котором содержится информация о конкретной редакции, такая как её родители, коммиттер, автор, дата и объект-дерево, соответствующий верхнему каталогу этой сохранённой редакции.
- указатель коммита
-
Это объект-коммит или объект, который можно рекурсивно разыменовать до объекта-коммита. Далее следует исчерпывающий список объектов, которые считаются указателями коммитов: объект-коммит, объект-метка, который указывает на объект-коммит, объект-метка, который указывает на другой объект-метку, который указывает на объект-коммит и т.д.
- ядро Git
-
Низкоуровневые структуры данных и инструментарий Git. Предоставляет только ограниченные инструменты для управления исходным кодом.
- DAG
-
Направленный (или ориентированный) ациклический граф. Объекты-коммиты образуют собой направленный ациклический граф, потому что у них есть родители (отсюда направленный), а граф объектов-коммитов является ациклическим (т.к. не существует цепочки которая начинается и заканчивается одни и тем же объектом).
- болтающийся объект (dangling object)
-
Недостижимый объект, который не является достижимым даже из других недостижимых объектов. На болтающийся объект не существует ссылок ни из какой-либо другой ссылки или объекта в репозитории.
- разыменование
-
Применительно к символической ссылке: действие доступа к ссылке, на которую указывает данная символическая ссылка. Рекурсивное разыменование включает в себя повторение вышеупомянутый процесса обращения к ссылке до тех пор, пока не будет найдена несимволическая ссылка.
Применительно к объекту-метке: действие доступа к объекту, на который указывает метка. Метки рекурсивно разыменовываются повторяя ту же операцию к объекту-результату до тех пор, пока результат не будет иметь либо заданный тип объекта (если применимо) или какой-либо тип объекта отличный от «метки». Синоним для «рекурсивного разыменования» в контексте меток — «шелушение».
Применительно к объекту-коммиту: действие доступа к объекту-дереву, соответствующему этому коммиту. Коммиты не могут быть разыменованы рекурсивно.
Если не указано иное, то подразумевается, что «разыменование», когда это понятие используется в контексте команд или протоколов Git, является рекурсивным.
- отсоединённый указатель HEAD
-
Обычно HEAD хранит имя ветки, и команды, которые работают с историей коммитов, работают с историей, ведущей к верхушке этой ветки, на которую указывает HEAD. Однако, Git также позволяет вам переключиться на произвольный коммит, который может и не являться верхушкой какой-либо конкретной ветки. HEAD в таком состоянии называется «отсоединённым» или «отделённым».
Обратите внимание, что команды, которые работают с историей текущей ветки (например,
git commit
, которая создаёт новую историю на верхушке ветки), всё ещё работают даже когда HEAD находится в отсоединённом состоянии. Они обновляют указатель HEAD так, чтобы он указывал на верхушку обновлённой истории, но не влияя на какую-либо ветку. Команды же, которые обновляют или запрашивают информацию о текущей ветке (например,git branch --set-upstream-to
, которая устанавливает, с какой внешней веткой соотносится текущая локальная), очевидно, не будут работать, так как в этом состоянии нет (настоящей) текущей ветки. - каталог
-
Этот тот список, который выдаёт "ls" :-)
- грязный (dirty)
-
Рабочий каталог называют «грязным», если в нём есть изменения, которые ещё не были зафиксированы в текущей ветке.
- порочное слияние (evil merge)
-
Порочное слияние — это слияние, которое добавляет изменения, которых не было ни в одном из родительских коммитов.
- быстрая перемотка (fast-forward)
-
Быстрая перемотка — это особый тип слияния, когда вы «сливаете» уже имеющуюся у вас редакцию с изменениями в другой ветке, которые все являются потомками вашей редакции. В таком случае новый коммит слияния не будет создан, а вместо этого ваша ветка будет обновлена, чтобы она указывала на ту же редакцию, что и ветвь, с которой вы производите слияния. Такое часто будет происходить на отслеживаемых внешних ветках из удалённых репозиториев.
- извлечь (fetch)
-
Извлечение ветки означает получение ссылки на голову этой ветки из внешнего репозитория, чтобы выяснить, какие объекты отсутствуют в локальной базе данных объектов, и получить их. См. также git-fetch[1].
- файловая система
-
Линус Торвальдс изначально разрабатывал Git как файловую систему в пользовательском пространстве, т.е. как инфраструктуру для хранения файлов и каталогов. Это являлось залогом эффективности и скорости работы Git.
- Архив Git
-
Синоним для репозитория (для ребят на Arch’е).
- git-файл (gitfile)
-
Обычный файл
.git
в корне рабочего каталога, который указывает на каталог, являющийся настоящим репозиторием. Для непосредственно использования см. git-worktree[1] или git-submodule[1]. Для синтаксиса см. gitrepository-layout[5]. - сращивания (grafts)
-
Сращивание позволяет объединять две иначе различные линии разработки, записывая фиктивную информацию о родстве коммитов. Таким образом, вы можете заставить Git делать вид, что набор родителей коммита, отличается от того, который был зафиксирован при создании коммита. Сращивания настраиваются в файле
.git/info/grafts
.Обратите внимание, что механизм сращиваний устарел и может вызывать проблемы при передаче объектов между репозиториями; смотрите git-replace[1] для более гибкой и надёжной системы для выполнения той же задачи.
- хеш (hash)
-
В контексте Git синоним имени объекта.
- голова (head)
-
Именованная ссылка на коммит на верхушке ветки. Головы хранятся в файле в каталоге
$GIT_DIR/refs/heads/
, за исключением случаев, когда используются упакованные ссылки. (См. git-pack-refs[1].) - HEAD
-
Текущая ветка. Если подробнее, то ваш рабочий каталог, как правило, основывается на состоянии дерева, на которое указывает HEAD. HEAD — это ссылка на одну из голов голов веток, в вашем репозитории, за исключением случаев, когда указатель HEAD находится в отсоединённом состоянии; в этом случае он ссылается на произвольный коммит напрямую.
- ссылка на голову (head ref)
-
Синоним для головы (head).
- перехватчик (hook)
-
В ходе нормального выполнения некоторых команд Git могут вызываться дополнительные сценарии, которые позволяют разработчикам добавлять дополнительную функциональность или проверки. Обычно перехватчики позволяют проверить команду перед её непосредственным выполнением и, возможно, прервать её, а также выводить уведомления после завершения операции. Сценарии перехватчиков находятся в каталоге
$GIT_DIR/hooks/
и их можно включить просто удалив суффикс.sample
из имени файла. В более ранних версиях Git вы также должны были сделать их исполняемыми. - индекс
-
Коллекция файлов и некоторой дополнительной информации, чьё содержимое хранится в виде объектов. Индекс — это сохранённая версия вашего рабочего каталога. На самом деле, он также может содержать две, и даже три версии рабочего каталога, что, например, используется при слиянии.
- запить индекса (index entry)
-
Информация, касающаяся конкретного файла, хранящаяся в индексе. Запись индекса может быть «не слитой», если слияние было начато, но ещё не завершено (т.е. если индекс содержит несколько версий этого файла).
- master, мастер-ветка
-
Ветка для разработки по умолчанию. Всякий раз, когда вы создаёте репозиторий Git, создаётся ветка c названием "master", которая становится активной. В большинстве случаев локальная разработка ведётся в ней, хотя это только конвенция, а не требование.
- слияние, слить (merge)
-
Слить: принести содержимое сторонней ветки (возможно, из внешнего репозитория) в текущую. В случае, если сливаемая ветка находится в другого репозитории, то для того чтобы её слить нужно сначала извлечь (fetch) удалённую ветку и только затем слить результат с текущей веткой. Cочетание этих операций извлечения и слияния называется получение (pull). Слияние осуществляется автоматически, идентифицируя изменения, внесённые, с тех пор как ветки разошлись, а затем применяя все эти изменения совместно. В тех случаях, когда возникают конфликты, для завершения процесса слияния может потребоваться ручное вмешательство.
Слияние: успешное слияние приводит к созданию нового коммита (если не используется процедура быстрой перемотки), который и представляет собой результат слияния, и имеет в качестве родителей верхушки слитых веток. Такой коммит называется «коммитом слияния» («merge commit»), или иногда просто «слиянием» («merge»).
- объект
-
Единичный блок, которым оперирует Git для хранения информации. Он уникально идентифицируется SHA-1-хешем его содержимого. Так что объект не может быть изменён.
- база данных объектов
-
Хранит множество «объектов» таким образом, что индивидуальные объекты можно идентифицировать по их имени объекта. Такие объекты обычно хранятся в
$GIT_DIR/objects/
. - идентификатор объекта (oid, Object IDentifier)
-
Синоним для имени объекта.
- имя объекта
-
Уникальный идентификатор объекта. Имя объекта, как правило, представлено строкой из 40 шестнадцатеричных символов. Также в разговорной речи его зачастую называют SHA-1.
- тип объекта
-
Один из идентификаторов «коммит», «дерево», «метка» или «blob», описывающий тип объекта.
- осьминог (octopus)
- осиротить (orphan)
-
Действия перехода на ветку, которая ещё не существует (т.е. на нерождённую ветку). После такой операции первый созданный коммит становится коммитом без родителя, начиная новую историю.
- origin
-
Имя вышележащего репозитория по умолчанию. В большинстве проектов есть как минимум один вышележащий проект, который они отслеживают. По умолчанию имя «origin» используется для этой цели. Новые изменения в вышележащем репозитории будут извлекаться в отслеживаемые внешние ветки с именами вида «origin/имя-ветки-в-вышележащем-репозитории», которые можно посмотреть с помощью
git branch -r
. - оверлей (overlay)
-
Режим, в котором файлы в рабочий каталоге только обновляются и добавляются, но не удаляются, подобно тому, как содержимое в целевом каталоге обновляет команда
cp -R
. Это режим извлечения состояния по умолчанию при извлечении отдельных файлов из индекса или указателя дерева. В отличие от него, «не оверлейный» режим также удаляет отслеживаемые файлы, отсутствующие в источнике, подобно тому как это делаетrsync --delete
. - пакет, pack-файл (pack)
-
Набор объектов, которые были сжаты в один файл (для экономии дискового пространства или эффективной передачи).
- индекс пакета (pack index)
-
Список идентификаторов объектов (и другая связанная с ними информация), хранимый в пакете, чтобы доступе к его содержимому был более эффективным.
- спецификатор пути (pathspec)
-
Шаблоны, используемые для того чтобы ограничить пути в командах Git.
Cпецификаторы пути используются в командной строке «git ls-files», «git ls-tree», «git add», «git grep», «git diff», «git checkout», а также многих других команд, чтобы ограничить область действия операций некоторым подмножеством в дереве или рабочем каталоге. Являются ли пути относительными для текущего каталога или корневого каталога рабочей копии, см. в документации каждой конкретной команды. Синтаксис спецификаторов пути следующий:
-
любой путь соответствует самому себе
-
спецификатор пути до последнего слэша представляет собой префикс каталога. Область действия этого спецификатора пути ограничивается этим поддеревом.
-
остальная часть спецификатора пути является шаблоном для остатка пути. Пути относительно префикса каталога будут сопоставляться с этим шаблоном, используя fnmatch(3); в частности, * и ? могут быть сопоставлены символу разделителя каталогов.
Например, Documentation/*.jpg будет сопоставлено всем файлам c расширением .jpg в поддереве Documentation, включая, Documentation/chapter_1/figure_1.jpg.
У спецификатора пути, который начинается с двоеточия
:
, есть особое значение. В короткой форме после начального двоеточия:
идёт "волшебная сигнатура" (которая, по желанию, может завершаться вторым двоеточием:
), а остаток является шаблоном, который будет сопоставляться с путём. "Волшебная сигнатура" состоит из ASCII-символов, которые не являются ни буквенно-цифровыми символями, ни glob-символами, ни особыми символами регулярных выражений, ни двоеточием. Двоеточие, которое завершает "волшебную сигнатуру", может быть опущено, если паттерн начинается с символа, который не входит в набор символов, допустимых в "волшебной сигнатуре", и не является двоеточием.В длинной форме после двоеточия
:
идёт открывающая скобка(
, разделённый запятыми список из нуля или более "волшебных слов" и закрывающая скобка)
, а остаток является шаблон, который будет сопоставляться пути.Спецификатор пути, содержащий только одно двоеточие, означает "спецификатор пути отсутствует". Эта форма не должна использоваться совместно с другими спецификаторами пути.
- top
-
Волшебное слово
top
(волшебная сигнатура/
) делает так, что паттерн сопоставляется относительно корня рабочего каталога, даже когда вы запускаете команду внутри одного из подкаталогов. - literal
-
Джокеры (
*
и?
) в паттерне будут обрабатываться буквально, как обычные символы. - icase
-
Сопоставление без учёта регистра.
- glob
-
Git будет обрабатывать паттерн как glob-выражение оболочки, передаваемого в fnmatch(3) с флагом FNM_PATHNAME: джокеры в шаблоне не будут сопоставляться слешу
/
в путях. Например, шаблону "Documentation/*.html" будет сопоставлен "Documentation/git.html", но не "Documentation/ppc/ppc.html" или "tools/perf/Documentation/perf.html".Две последовательных звёздочки («
**
») в шаблонах, сопоставленных с полным именем пути, могут иметь особое значение:-
Начальные «
**
», после которых идёт слэш (/
) означают сопоставление во всех каталогах. Например, шаблон «**/foo» будет сопоставлять файл или каталог «`foo
» в любом месте, точно также как и шаблон «foo
». А шаблон "**/foo/bar
" будет сопоставлять файл или каталог "bar
" в каталоге "foo
", который в свою очередь уже может находится в любом месте. -
Выражению "
/**
" на конце шаблона будет сопоставлено всё. Например, шаблону "abc/**
" будут сопоставлены все файлы в каталоге "abc", относительно местоположения файла.gitignore
, и всех его подкатологах рекурсивно. -
Слэш после которого идут две последовательные звёздочки, а затем ещё один слэш сопоставляется нулю или более каталогов. Например, шаблону «
a/**/b
» будут сопоставляться «a/b
», «a/x/b
», «a/x/y/b
» и т.д. -
Дальнейшие последующие звёздочки
*
будут считаться ошибкой.Магическое слово "glob" несовместимо с "literal".
-
- attr
-
После
attr:
идёт разделённый пробелами список "требований аттрибутов", каждое из которых должно быть удовлетворено, чтобы путь считался сопоставленным; всё это в дополнение к обычному, не волшебному, сопоставлению шаблона спецификаторов пути. См. gitattributes[5].Каждое требование аттрибута пути принимает одну из следующих форм:
-
"
АТТР
" требует чтобы аттрибутАТТР
был установлен. -
"-АТТР" требует, чтобы атрибут "АТТР" не был установлен.
-
"
АТТР=ЗНАЧЕНИЕ
" требует, чтобы в атрибуте "АТТР
" было установлено строковое значение "ЗНАЧЕНИЕ". -
"‘!АТТР’" требует, чтобы атрибут "АТТР" был неопределён.
Обратите внимание, что при сопоставлении с объектом-деревом, атрибуты всё равно будут получаться из рабочей копии, а не из объекта-дерева.
-
- exclude
-
После того, как спецификатор пути будет сопоставлен любому не-exclude шаблону, он будет проходить через все исключающие (exclude) спецификаторы пути (волшебная сигнатура:
!', или её синоним: `^
). Если шаблон будет сопоставлен, то, путь будет проигнорирован. Если не задано ни одного спецификатора пути кроме исключающих, то они будут применяется к тому набору путей, который был бы сформирован, если бы не было указано вообще ни одного спецификатора пути.
-
- родитель (parent)
-
Каждый объект-коммит содержит (возможно, пустой) список своих логических предшественников в линии развития, т.е. его родителей.
- шелушение (peel)
-
Действие рекурсивного разыменования объекта-метки.
- pickaxe
-
The term pickaxe refers to an option to the diffcore routines that help select changes that add or delete a given text string. With the
--pickaxe-all
option, it can be used to view the full changeset that introduced or removed, say, a particular line of text. See git-diff[1]. - внутренний интерфейс Git (plumbing)
-
Тоже что и ядро Git. Иногда используется неформальный термин «plumbing» (канализация).
- пользовательские программы, высокоуровневый программный интерфейс Git, фарфор (porcelain)
-
Высокоуровневый программный интерфейс к ядру Git, который предоставляет доступ к нему в виде вызовов больше напоминающих работу с СКВ. Подобно тому как фарфоровые изделия в наших домах предоставляют более удобный доступ к канализационным трубам, «фарфоровый» интерфейс предоставляет доступ к внутреннему интерфейсу Git. Кроме того термином «фарфор» (porcelain) называют сами высокоуровневые пользовательские программы и пакеты программ, а также машиночитаемый формат данных, используемый в этом интерфейсе.
- per-worktree ref
-
Refs that are per-worktree, rather than global. This is presently only HEAD and any refs that start with
refs/bisect/
, but might later include other unusual refs. - pseudoref
-
A ref that has different semantics than normal refs. These refs can be read via normal Git commands, but cannot be written to by commands like git-update-ref[1].
The following pseudorefs are known to Git:
-
FETCH_HEAD
is written by git-fetch[1] or git-pull[1]. It may refer to multiple object IDs. Each object ID is annotated with metadata indicating where it was fetched from and its fetch status. -
MERGE_HEAD
is written by git-merge[1] when resolving merge conflicts. It contains all commit IDs which are being merged.
-
- pull
-
Pulling a branch means to fetch it and merge it. See also git-pull[1].
- push
-
Pushing a branch means to get the branch’s head ref from a remote repository, find out if it is an ancestor to the branch’s local head ref, and in that case, putting all objects, which are reachable from the local head ref, and which are missing from the remote repository, into the remote object database, and updating the remote head ref. If the remote head is not an ancestor to the local head, the push fails.
- достижимость
-
Говорят, что все предки данного коммита «достижимы» из этого коммита. В более общем смысле, один объект достижим из другого, если мы можем добраться из одного до другого по цепочке переходов от метки к тому на что эта метка ссылается, от коммитов к их родителям или деревьям, и от деревьев к содержащимся в них поддеревьям или blob-объектам.
- reachability bitmaps
-
Reachability bitmaps store information about the reachability of a selected set of commits in a packfile, or a multi-pack index (MIDX), to speed up object search. The bitmaps are stored in a ".bitmap" file. A repository may have at most one bitmap file in use. The bitmap file may belong to either one pack, or the repository’s multi-pack index (if it exists).
- rebase
-
To reapply a series of changes from a branch to a different base, and reset the head of that branch to the result.
- ссылка (ref)
-
Имя, которое указывает на имя объекта или другую ссылку (в последнем случае она называется символической ссылкой). Для удобства при использовании в качестве аргумента в командах Git, иногда ссылки могут быть сокращены; см. подробности в gitrevisions[7]. Ссылки хранятся в репозиториях.
The ref namespace is hierarchical. Ref names must either start with
refs/
or be located in the root of the hierarchy. For the latter, their name must follow these rules:-
The name consists of only upper-case characters or underscores.
-
The name ends with "
_HEAD
" or is equal to "HEAD
".There are some irregular refs in the root of the hierarchy that do not match these rules. The following list is exhaustive and shall not be extended in the future:
-
AUTO_MERGE
-
BISECT_EXPECTED_REV
-
NOTES_MERGE_PARTIAL
-
NOTES_MERGE_REF
-
MERGE_AUTOSTASH
Different subhierarchies are used for different purposes. For example, the
refs/heads/
hierarchy is used to represent local branches whereas therefs/tags/
hierarchy is used to represent local tags..
-
- reflog
-
A reflog shows the local "history" of a ref. In other words, it can tell you what the 3rd last revision in this repository was, and what was the current state in this repository, yesterday 9:14pm. See git-reflog[1] for details.
- спецификатор ссылки (refspec)
-
«Спецификатор ссылки» используется при извлечении (fetch) и отправке (push) для описания соответствия между внешней и локальной ссылками. См. подробности в git-fetch[1] или git-push[1].
- внешний репозиторий
-
Репозиторий, который используется для отслеживания того же проекта, но находится где-то в другом месте. Чтобы общаться со внешними или удалёнными репозиториями, см. описания извлечения (fetch) или отправки (push).
- отслеживаемая внешняя ветка (remote-tracking branch)
-
Ссылка, которая используется для отслеживания изменений из другого репозитория. Обычно она выглядит как «refs/remotes/foo/bar» (что указывает, что она отслеживает ветвь под названием «bar» во внешнем репозитории «foo»), и соответствует правой стороне спецификатора ссылки, которая используется при извлечении (fetch). Отслеживаемая внешняя ветка не должна содержать прямых модификаций или иметь локальные коммиты.
- репозиторий
-
Коллекция ссылок вместе с базой данных объектов содержащей все объекты, достижимые из ссылок, возможно, вместе с данными одной или нескольких пользовательских программ. Репозиторий может использовать свою базу данных объектов совместно с другими репозиториями через механизм дополнения базы данных.
- resolve
-
The action of fixing up manually what a failed automatic merge left behind.
- редакция (revision)
-
Синоним к коммиту.
- rewind
-
To throw away part of the development, i.e. to assign the head to an earlier revision.
- СКВ (SCM)
-
Система контроля версий (как инструмент), то же что и система управления версиями, систему управления исходным кодом, SCM-система.
- SHA-1
-
"Secure Hash Algorithm 1" (безопасный алгоритм хеширования-1); криптографическая хеш-функция. В контексте Git используется как синоним для имени объекта.
- частичный клон (shallow clone)
-
По большей части, это синоним для «частичный репозиторий», но эта формулировка делает акцент на том, что он был создан с помощью команды вроде
git clone --depth=...
. - частичный репозиторий (shallow repository)
-
Частичный репозиторий имеет неполную историю: ссылки на родителей некоторых из его коммитов были «ампутированы» (другими словами, Git’у сказано делать вид, что эти коммиты не имеют родителей, несмотря на то, что в объектном предаставлении этого коммита эти записи всё ещё присутствуют). Иногда это может быть полезно, например, когда вас интересует только недавняя история проекта, даже если реальная история, хранящаяся в вышестоящем репозитории, куда больше. Частичный репозиторий можно создать, передав параметр
--depth
в git-clone[1], и его история может быть позже углублена с помощью git-fetch[1]. - stash entry
-
An object used to temporarily store the contents of a dirty working directory and the index for future reuse.
- submodule
-
A repository that holds the history of a separate project inside another repository (the latter of which is called superproject).
- superproject
-
A repository that references repositories of other projects in its working tree as submodules. The superproject knows about the names of (but does not hold copies of) commit objects of the contained submodules.
- символическая ссылка (symref)
-
Вместо того, чтобы непосредственно содержать SHA-1, символическая ссылка имеет формат "ref: refs/some/thing" и при обращении она рекурсивно разыменовывается. «HEAD» — самый простой пример символической ссылки. Манипулировать символическими ссылками можно с помощью команды git-symbolic-ref[1].
- метка (tag)
-
Ссылка в пространстве имён
refs/tags/
, которая указывает на объект произвольного типа (как правило, метка указывает либо на объект-метку, либо на объект-коммит). В отличие от головы ветки, метка не обновляется командойcommit
. Метки в Git не имеют ничего общего с тегами Lisp (который назывались бы типами объектов в контексте Git). Метка, как правило, используется для того, чтобы пометить определённую точку в цепочке наследования. - объект-метка
-
Объект, который содержит ссылку, указывающую на другой объект, который может содержать сообщение точно так же, как объект-коммит. Он также может содержать подпись (PGP), в этом случае он будет называться «подписанным объектом-меткой».
- topic branch
-
A regular Git branch that is used by a developer to identify a conceptual line of development. Since branches are very easy and inexpensive, it is often desirable to have several small branches that each contain very well defined concepts or small incremental yet related changes.
- завершитель (trailer)
-
Метаданные вида «Ключ: Значение». Завершители находятся в конце сообщений коммитов. Они могут также называться «футтерами» («footer»), «тегами» («tags») или «трейлерами» в различных сообществах. git-interpret-trailers[1].
- дерево (tree)
-
Либо рабочий каталог, либо объект-дерево вместе со всеми своими зависимыми blob-объектами и объектами-деревьями (т.е. сохранённое представление рабочего каталога).
- объект-дерево (tree object)
-
Объект, который содержит список имён и прав доступа вместе со связанным с ними ссылками на бинарные объекты и/или другие объекты-деревья. Дерево эквивалентно каталогу.
- tree-ish (also treeish)
-
A tree object or an object that can be recursively dereferenced to a tree object. Dereferencing a commit object yields the tree object corresponding to the revision's top directory. The following are all tree-ishes: a commit-ish, a tree object, a tag object that points to a tree object, a tag object that points to a tag object that points to a tree object, etc.
- нерождённая (unborn)
-
HEAD может указывать на ветку, которая ещё не существует и в которой пока нет ни одного коммита. Такая ветка называется «нерождённой». Наиболее типичная ситуация, когда пользователи сталкиваются с нерождённой веткой, — это создание нового репозитория без клонирования из какого-либо другого места. HEAD будет указывать на ветку «main» (или «master», в зависимости от вашей конфигурации), которой ещё только предстоит быть рождённой. Кроме того, некоторые операции, у которых есть параметр orphan (осиротить), могут перевести вас на такую нерождённую ветку.
- не слитый индекс
- недостижимый объект
-
Объект объект, который не является достижимым из ветки, метки или какой-либо другой ссылки.
- вышестоящая ветка (upstream branch)
-
Ветка по умолчанию, которая сливается с некоторой данной веткой (или на которую эта данная ветка перемещается (rebase)). Она настраивается с помощью переменных конфигурации branch.<имя>.remote и branch.<имя>.merge. Если «origin/B» является вышестоящей веткой для «A», то иногда мы говорим, что «„A“ отслеживает „origin/B“».
- рабочий каталог (working tree)
-
Дерево файлов, собственно извлечённых из системы контроля версий. Рабочий каталог обычно представляет собой содержимое дерева коммита HEAD, с локальными изменениями, которые вы сделали, но ещё не зафиксировали.
- рабочая копия (worktree)
-
Репозиторий может иметь или ноль (если репозиторий голый, bare), или одну или более связанных с ним рабочих копий. Одна «рабочая копия» состоит из «рабочего каталога» и метаданных репозитория, большая часть которых используется совместно с другими рабочими копиями того же репозитория, а некоторые поддерживаются отдельно для каждой рабочей копии (например, индекс, HEAD и псевдоссылки, такие как MERGE_HEAD, а также те файл конфигурации и ссылки, которые специфичны для каждой рабочей копии).
GIT
Является частью пакета git[1]