Spec-Zone.ru › Git

gitglossary

Название

gitglossary — глоссарий Git

Краткое описание

*

Описание

альтернативная база объектов

С помощью механизма alternate репозиторий может наследовать часть своей базы объектов от другой базы объектов, которая называется «альтернативной».

голый репозиторий

Голый репозиторий обычно представляет собой каталог с соответствующим именем и суффиксом .git, в котором нет локально извлечённой копии каких-либо файлов, находящихся под контролем версий. Иными словами, все административные и управляющие файлы Git, которые обычно находятся в скрытом подкаталоге .git, вместо этого размещены непосредственно в каталоге repository.git, а других файлов в нём нет. Обычно издатели общедоступных репозиториев предоставляют голые репозитории.

объект blob

Объект без типа, например содержимое файла.

ветка

«Ветка» — это линия разработки. Последний коммит ветки называется её вершиной. На вершину ветки указывает ссылка — голова ветки; она перемещается вперёд по мере дальнейшей разработки ветки. Один репозиторий Git может отслеживать произвольное число веток, но ваше рабочее дерево связано только с одной из них (текущей, или выбранной, веткой), на которую указывает HEAD.

кэш

Устаревшее название индекса.

цепочка

Список объектов, в котором каждый объект содержит ссылку на следующий (например, следующим объектом после коммита может быть один из его родителей).

набор изменений

Термин из BitKeeper/cvsps для обозначения «коммита». Поскольку Git хранит не изменения, а состояния, термин «набор изменений» для Git, строго говоря, не имеет смысла.

извлечение

Действие, при котором всё рабочее дерево или его часть обновляется объектом дерево или blob из базы объектов, а также обновляются индекс и HEAD, если всё рабочее дерево переключено на новую ветку.

выборочное применение коммита

В жаргоне SCM «cherry pick» означает выбор подмножества изменений из серии изменений (обычно коммитов) и запись их в виде новой серии изменений поверх другой кодовой базы. В Git для этого используется команда «git cherry-pick»: она извлекает изменение, внесённое существующим коммитом, и записывает его на основе вершины текущей ветки в виде нового коммита.

чистое состояние

Рабочее дерево считается чистым, если оно соответствует ревизии, на которую указывает текущая голова. См. также «изменённое состояние».

коммит

Как существительное: отдельная точка в истории Git; вся история проекта представлена в виде набора взаимосвязанных коммитов. Git часто использует слово «коммит» в тех же случаях, когда другие системы контроля версий используют слова «ревизия» или «версия». Также это сокращённое название объекта коммита.

Как глагол: действие по сохранению нового снимка состояния проекта в истории Git путём создания нового коммита, представляющего текущее состояние индекса, и перемещения HEAD на новый коммит.

понятие графа коммитов, его представление и использование

Синоним структуры DAG, образованной коммитами в базе объектов, на которые указывают вершины веток, и использующей их цепочки связанных коммитов. Эта структура и есть собственно граф коммитов. Граф можно представлять и другими способами, например с помощью файла «commit-graph».

файл commit-graph

Файл «commit-graph» (обычно с дефисом в названии) — это дополнительное представление графа коммитов, ускоряющее обход графа. Файл «commit-graph» хранится либо в каталоге .git/objects/info, либо в каталоге info альтернативной базы объектов.

объект коммита

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

commit-ish (также committish)

Объект коммита или объект, который можно рекурсивно разыменовать до объекта коммита. К commit-ish относятся: объект коммита, объект тега, указывающий на объект коммита, объект тега, указывающий на объект тега, который указывает на объект коммита, и так далее.

ядро Git

Основные структуры данных и утилиты Git. Предоставляет лишь ограниченный набор средств управления исходным кодом.

DAG

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

висячий объект

Недостижимый объект, который нельзя достичь даже из других недостижимых объектов; на висячий объект не ссылается ни одна ссылка или объект в репозитории.

разыменование

Применительно к символической ссылке: действие по обращению к ссылке, на которую указывает символическая ссылка. Рекурсивное разыменование предполагает повторение описанной операции для полученной ссылки до тех пор, пока не будет найдена несymbolическая ссылка.

Применительно к объекту тега: действие по обращению к объекту, на который указывает тег. Теги разыменовываются рекурсивно: операция повторяется для результирующего объекта, пока его тип не станет указанным типом объекта (если он задан) или любым типом, отличным от «tag». Синоним «рекурсивного разыменования» для тегов — «раскрытие».

Применительно к объекту коммита: действие по обращению к объекту дерево коммита. Коммиты нельзя разыменовывать рекурсивно.

Если не указано иное, «разыменование» в контексте команд и протоколов Git подразумевает рекурсивное разыменование.

отсоединённый HEAD

Обычно в HEAD хранится имя ветки, и команды, работающие с представленной HEAD историей, обрабатывают историю, ведущую к вершине ветки, на которую указывает HEAD. Однако Git также позволяет переключиться на произвольный коммит, который не обязательно является вершиной какой-либо ветки. В таком состоянии HEAD называется «отсоединённым».

Обратите внимание: команды, работающие с историей текущей ветки (например, git commit для создания новой истории поверх неё), продолжают работать и при отсоединённом HEAD. Они перемещают HEAD на вершину обновлённой истории, не затрагивая ветку. Команды, которые обновляют сведения о текущей ветке или запрашивают их about (например, git branch --set-upstream-to, задающая ветку удалённого отслеживания, с которой интегрируется текущая ветка), очевидно, работать не будут, поскольку в этом состоянии нет (реальной) текущей ветки, о которой можно было бы запросить сведения.

каталог

Список, который выдаёт команда «ls» :-)

изменённое состояние

Рабочее дерево считается «изменённым», если в нём есть изменения, которые не были зафиксированы в текущей ветке.

неудачное слияние

Неудачное слияние — это слияние, вносящее изменения, которых нет ни в одном из родителей.

перемотка вперёд

Перемотка вперёд — это особый вид слияния, при котором у вас есть ревизия, а вы «сливаете» изменения другой ветки, являющейся потомком вашей ревизии. В таком случае новый коммит слияния не создаётся — ваша ветка просто перемещается на ту же ревизию, что и ветка, с которой выполняется слияние. Это часто происходит с веткой удалённого отслеживания удалённого репозитория.

получение

Получить ветку означает получить её ссылку на голову из удалённого репозитория, определить, каких объектов не хватает в локальной базе объектов, и получить их. См. также git-fetch[1].

файловая система

Изначально Линус Торвальдс разработал Git как файловую систему пользовательского пространства, то есть инфраструктуру для хранения файлов и каталогов. Это обеспечило эффективность и скорость Git.

архив Git

Синоним репозитория (в терминологии специалистов по архитектуре компьютеров).

файл gitfile

Обычный файл .git в корне рабочего дерева, указывающий на каталог, в котором находится настоящий репозиторий. Правила его использования см. в git-worktree[1] или git-submodule[1]. Синтаксис описан в gitrepository-layout[5].

подсадки

Подсадки позволяют объединить две в остальном разные линии разработки, записывая фиктивные сведения о происхождении коммитов. Благодаря этому можно заставить Git считать, что у коммита другой набор родителей, нежели тот, который был записан при его создании. Настраивается с помощью файла .git/info/grafts.

Обратите внимание: механизм подсадок устарел и может вызывать проблемы при передаче объектов между репозиториями. Более гибкая и надёжная система, выполняющая ту же задачу, описана в git-replace[1].

хеш

В контексте Git — синоним имени объекта.

голова

Именованная ссылка на коммит в вершине ветки. Головы хранятся в файлах каталога $GIT_DIR/refs/heads/, за исключением случаев использования упакованных ссылок. (См. git-pack-refs[1].)

HEAD

Текущая ветка. Точнее, обычно ваше рабочее дерево создаётся на основе состояния дерева, на которое указывает HEAD. HEAD — это ссылка на одну из голов вашего репозитория, кроме случая с отсоединённым HEAD, когда она указывает непосредственно на произвольный коммит.

ссылка на голову

Синоним головы.

перехватчик

При обычном выполнении ряда команд Git вызываются дополнительные необязательные скрипты, позволяющие разработчику добавлять функциональность или выполнять проверки. Как правило, перехватчики позволяют предварительно проверить команду и при необходимости прервать её, а также отправить уведомление после завершения операции. Скрипты перехватчиков находятся в каталоге $GIT_DIR/hooks/; чтобы включить их, достаточно удалить суффикс .sample из имени файла. В более ранних версиях Git их нужно было сделать исполняемыми.

индекс

Набор файлов со статистической информацией, содержимое которых хранится в виде объектов. Индекс — это сохранённая версия вашего рабочего дерева. На самом деле в нём могут храниться и вторая, и даже третья версии рабочего дерева; они используются при слиянии.

запись индекса

Сведения об отдельном файле, хранящиеся в индексе. Запись индекса может быть неслитой, если слияние было начато, но ещё не завершено (то есть если индекс содержит несколько версий этого файла).

master

Ветка разработки по умолчанию. При создании репозитория Git создаётся ветка с именем «master», которая становится активной. В большинстве случаев в ней ведётся локальная разработка, хотя это лишь соглашение, а не обязательное правило.

слияние

Как глагол: включить содержимое другой ветки (возможно, из внешнего репозитория) в текущую ветку. Если сливаемая ветка находится в другом репозитории, сначала выполняется получение удалённой ветки, а затем результат сливается с текущей веткой. Эта комбинация операций получения и слияния называется извлечением изменений. Слияние выполняется автоматически: система определяет изменения, внесённые с момента расхождения веток, и применяет их вместе. Если изменения конфликтуют, для завершения слияния может потребоваться вмешательство пользователя.

Как существительное: если это не перемотка вперёд, успешное слияние приводит к созданию нового коммита, представляющего результат слияния и имеющего вершины слитых веток в качестве родителей. Такой коммит называется «коммитом слияния» или просто «слиянием».

объект

Единица хранения в Git. Она уникально идентифицируется по SHA-1 своего содержимого. Поэтому объект нельзя изменить.

база объектов

Хранит набор «объектов»; отдельный объект идентифицируется по своему имени объекта. Обычно объекты находятся в каталоге $GIT_DIR/objects/.

идентификатор объекта, ID объекта, oid

Синонимы имени объекта.

имя объекта

Уникальный идентификатор объекта. Обычно имя объекта представлено шестнадцатеричной строкой длиной 40 символов. В обиходе также называется SHA-1.

тип объекта

Один из идентификаторов «commit», «tree», «tag» или «blob», обозначающий тип объекта.

осьминог

Выполнить слияние более чем двух веток.

сирота

Переход на ещё не существующую ветку (то есть на нерождённую ветку). После такой операции первый созданный коммит не будет иметь родителя и начнёт новую историю.

origin

Репозиторий, заданный по умолчанию как вышестоящий. У большинства проектов есть по крайней мере один вышестоящий проект, изменения которого они отслеживают. По умолчанию для этой цели используется origin. Новые изменения из вышестоящего проекта будут получены в ветки удалённого отслеживания с именами origin/name-of-upstream-branch; их можно просмотреть с помощью git branch -r.

режим наложения

Обновлять и добавлять файлы в рабочий каталог, но не удалять их — подобно тому, как cp -R обновляет содержимое целевого каталога. Это режим по умолчанию при извлечении файлов из индекса или tree-ish. В отличие от него, режим без наложения также удаляет отслеживаемые файлы, отсутствующие в источнике, подобно rsync --delete.

пакет

Набор объектов, сжатых в один файл (для экономии места или эффективной передачи).

индекс пакета

Список идентификаторов и других сведений об объектах в пакете, помогающий эффективно обращаться к его содержимому.

спецификация пути

Шаблон, используемый для ограничения путей в командах Git.

Спецификации путей используются в командной строке команд «git ls-files», «git ls-tree», «git add», «git grep», «git diff», «git checkout» и многих других, чтобы ограничить область операций частью дерева или рабочего дерева. Сведения о том, отсчитываются ли пути от текущего каталога или от корневого каталога, см. в документации соответствующей команды. Синтаксис спецификации пути:

  • любой путь соответствует самому себе

  • часть спецификации пути до последней косой черты задаёт префикс каталога. Область действия этой спецификации ограничена соответствующим поддеревом.

  • оставшаяся часть спецификации пути задаёт шаблон для оставшейся части имени пути. Пути относительно префикса каталога сопоставляются с этим шаблоном с помощью fnmatch(3); в частности, * и ? can соответствуют разделителям каталогов.

Например, Documentation/*.jpg соответствует всем файлам .jpg в поддереве Documentation, включая Documentation/chapter_1/figure_1.jpg.

Спецификация пути, начинающаяся с двоеточия :, имеет особое значение. В краткой форме за начальным двоеточием : следуют ноль или более букв «магической сигнатуры» (которые могут завершаться ещё одним двоеточием :), а затем шаблон для сопоставления с путём. «Магическая сигнатура» состоит из символов ASCII, которые не являются буквами и цифрами, символами glob, специальными символами регулярных выражений или двоеточием. Завершающее «магическую сигнатуру» двоеточие можно опустить, если шаблон начинается с символа, не входящего в набор символов «магической сигнатуры» и не являющегося двоеточием.

В полной форме за начальным двоеточием : следуют открывающая скобка (, разделённый запятыми список из нуля или более «магических слов», закрывающая скобка ), а затем шаблон для сопоставления с путём.

Спецификация пути, состоящая только из двоеточия, означает «спецификация пути отсутствует». Эту форму не следует комбинировать с другими спецификациями путей.

корень

Магическое слово top (магическая сигнатура: /) указывает, что шаблон сопоставляется с корнем рабочего дерева, даже если команда выполняется из подкаталога.

буквальное соответствие

Подстановочные знаки в шаблоне, например * или ?, рассматриваются как обычные символы.

без учёта регистра

Сопоставление без учёта регистра.

glob

Git рассматривает шаблон как шаблон оболочки glob, предназначенный для fnmatch(3) с флагом FNM_PATHNAME: подстановочные знаки в шаблоне не соответствуют символу / в имени пути. Например, «Documentation/*.html» соответствует «Documentation/git.html», но не «Documentation/ppc/ppc.html» и не «tools/perf/Documentation/perf.html».

Две следующие друг за другом звёздочки («**») в шаблонах, сопоставляемых с полным именем пути, могут иметь особое значение:

  • Начальная последовательность «**» со следующей за ней косой чертой означает соответствие во всех каталогах. Например, «**/foo» соответствует файлу или каталогу «foo» в любом месте. «**/foo/bar» соответствует файлу или каталогу «bar» в любом месте, непосредственно внутри каталога «foo».

  • Завершающая последовательность «/**» соответствует всему содержимому. Например, «abc/**» соответствует всем файлам внутри каталога «abc» относительно расположения файла .gitignore на любой глубине.

  • Косая черта, за которой следуют две звёздочки и ещё одна косая черта, соответствует нулю или более каталогам. Например, «a/**/b» соответствует «a/b», «a/x/b», «a/x/y/b» и так далее.

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

Магический режим glob несовместим с буквальным магическим режимом.

атрибуты

За attr: следует разделённый пробелами список «требований к атрибутам», каждое из которых должно быть выполнено, чтобы путь считался совпадением; это дополняет обычное сопоставление с шаблоном спецификации пути без магических элементов. См. gitattributes[5].

Каждое требование к атрибуту пути принимает одну из следующих форм:

  • «ATTR» требует, чтобы атрибут ATTR был установлен.

  • «-ATTR» требует, чтобы атрибут ATTR был снят.

  • «ATTR=VALUE» требует, чтобы атрибут ATTR имел значение VALUE.

  • «!ATTR» требует, чтобы атрибут ATTR не был задан.

Обратите внимание: при сопоставлении с объектом дерево атрибуты по-прежнему берутся из рабочего дерева, а не из указанного объекта дерево.

исключение

После совпадения пути с любой спецификацией пути, не являющейся исключающей, он проверяется по всем исключающим спецификациям путей (магическая сигнатура: ! или её синоним ^). При совпадении путь игнорируется. Если спецификаций путей, не являющихся исключающими, нет, исключение применяется к результирующему набору так, как если бы команда была вызвана без спецификации пути.

родитель

Объект коммита содержит (возможно, пустой) список логических предшественников в линии разработки, то есть своих родителей.

раскрытие

Действие по рекурсивному разыменованию объекта тега.

pickaxe

Термин pickaxe обозначает параметр подпрограмм diffcore, помогающий выбирать изменения, добавляющие или удаляющие заданную текстовую строку. С помощью параметра --pickaxe-all его можно использовать для просмотра полного набора изменений, в котором была добавлена или удалена, например, определённая строка текста. См. git-diff[1].

низкоуровневый интерфейс

Шутливое название для ядра Git.

высокоуровневый интерфейс

Шутливое название программ и наборов программ, использующих ядро Git и предоставляющих доступ к нему на высоком уровне. Высокоуровневые интерфейсы предоставляют более развитый интерфейс SCM, чем низкоуровневый интерфейс.

ссылка отдельного рабочего дерева

Ссылки, относящиеся к отдельному рабочему дереву, а не являющиеся глобальными. В настоящее время к ним относятся только HEAD и любые ссылки, начинающиеся с refs/bisect/, но в дальнейшем могут добавиться и другие необычные ссылки.

псевдоссылка

Ссылка, семантика которой отличается от семантики обычных ссылок. Эти ссылки можно читать с помощью обычных команд Git, но команды вроде git-update-ref[1] не могут их изменять.

Git распознаёт следующие псевдоссылки:

  • FETCH_HEAD создаётся командой git-fetch[1] или git-pull[1]. Она может ссылаться на несколько идентификаторов объектов. Каждый идентификатор объекта снабжён метаданными, указывающими, откуда он был получен и каков статус его получения.

  • MERGE_HEAD создаётся командой git-merge[1] при разрешении конфликтов слияния. Она содержит идентификаторы всех объединяемых коммитов.

получение изменений (pull)

Получить ветку branch означает выполнить её fetch и merge. См. также git-pull[1].

отправка изменений (push)

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

достижимый

Все предки заданного коммита считаются «достижимыми» из этого коммита. В более общем смысле один объект достижим из другого, если до него можно добраться от другого по цепочке, которая следует по тегам к объектам, на которые они указывают, по коммитам к их родительским коммитам или деревьям, а по деревьям — к содержащимся в них деревьям или блобам.

битовые карты достижимости

Битовые карты достижимости хранят сведения о достижимости выбранного набора коммитов в файле пакета или мультипакетном индексе (MIDX), чтобы ускорить поиск объектов. Битовые карты хранятся в файле «.bitmap». В репозитории может использоваться не более одного файла битовой карты. Этот файл может относиться либо к одному пакету, либо к мультипакетному индексу репозитория (если он существует).

перебазирование (rebase)

Повторно применить последовательность изменений ветки branch к другой основе и переместить head этой ветки на полученный результат.

ссылка (ref)

Имя, указывающее на имя объекта или другую ссылку (последняя называется символической ссылкой). Для удобства при использовании в качестве аргумента команды Git ссылка иногда может быть сокращена; подробности см. в gitrevisions[7]. Ссылки хранятся в репозитории.

Пространство имён ссылок имеет иерархическую структуру. Имена ссылок должны начинаться с refs/ или находиться в корне иерархии. Для ссылок, находящихся в корне, их имена должны соответствовать следующим правилам:

  • Имя состоит только из заглавных букв или знаков подчёркивания.

  • Имя заканчивается на «_HEAD» или равно «HEAD».

В корне иерархии есть несколько нестандартных ссылок, не соответствующих этим правилам. Следующий список является исчерпывающим и в будущем не должен расширяться:

  • AUTO_MERGE

  • BISECT_EXPECTED_REV

  • NOTES_MERGE_PARTIAL

  • NOTES_MERGE_REF

  • MERGE_AUTOSTASH

Разные подиерархии используются для разных целей. Например, иерархия refs/heads/ используется для локальных веток, а иерархия refs/tags/ — для локальных тегов..

журнал ссылок (reflog)

Журнал ссылок показывает локальную «историю» ссылки. Иными словами, он может показать, какой была третья с конца редакция в репозитории this и каково было текущее состояние в репозитории this вчера в 21:14. Подробности см. в git-reflog[1].

спецификация ссылок (refspec)

«Спецификация ссылок» (refspec) используется командами fetch и push для описания соответствия между удалённой ссылкой и локальной ссылкой. Подробности см. в git-fetch[1] или git-push[1].

удалённый репозиторий

Репозиторий, используемый для отслеживания того же проекта, но расположенный в другом месте. Для взаимодействия с удалёнными репозиториями см. fetch или push.

удалённая отслеживаемая ветка

Ссылка, используемая для отслеживания изменений в другом репозитории. Обычно она выглядит как refs/remotes/foo/bar (что означает, что она отслеживает ветку с именем bar в удалённом репозитории с именем foo) и соответствует правой части настроенной спецификации ссылок fetch. В удалённую отслеживаемую ветку не следует вносить прямые изменения или создавать в ней локальные коммиты.

репозиторий

Набор ссылок вместе с базой данных объектов, содержащей все объекты, достижимые из этих ссылок, возможно, дополненный метаданными одной или нескольких пользовательских команд. Репозиторий может совместно использовать базу данных объектов с другими репозиториями с помощью механизма альтернативных баз данных объектов.

разрешение конфликта

Действие по ручному исправлению того, что осталось после неудачного автоматического слияния.

редакция

Синоним слова коммит (существительного).

откат

Отбросить часть разработки, то есть переместить head на более раннюю редакцию.

SCM

Управление исходным кодом (инструмент).

SHA-1

«Алгоритм безопасного хеширования 1»; криптографическая хеш-функция. В контексте Git используется как синоним имени объекта.

поверхностное клонирование

В основном синоним поверхностного репозитория, однако это выражение точнее указывает, что он был создан командой git clone --depth=....

поверхностный репозиторий

Поверхностный репозиторий имеет неполную историю: у некоторых его коммитов отсутствуют родительские коммиты (иначе говоря, Git предписано считать, что у этих коммитов нет родителей, хотя они указаны в объекте коммита). Это бывает полезно, если вас интересует только недавняя история проекта, хотя полная история в вышестоящем репозитории гораздо обширнее. Поверхностный репозиторий создаётся с параметром --depth команды git-clone[1]; впоследствии его историю можно углубить с помощью git-fetch[1].

запись stash

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

подмодуль

Репозиторий, в котором хранится история отдельного проекта внутри другого репозитория (последний называется суперпроектом).

суперпроект

Репозиторий, который ссылается на репозитории других проектов в своём рабочем дереве как на подмодули. Суперпроект знает имена объектов коммитов вложенных подмодулей, но не хранит их копии.

символическая ссылка (symref)

Символическая ссылка: вместо самого идентификатора SHA-1 она содержит значение формата ref: refs/some/thing и при обращении рекурсивно разыменовывается до этой ссылки. HEAD — наглядный пример символической ссылки. Символическими ссылками управляют с помощью команды git-symbolic-ref[1].

тег

Ссылка в пространстве имён refs/tags/, указывающая на объект произвольного типа (обычно тег указывает на объект тега или объект коммита). В отличие от head, тег не обновляется командой commit. Тег Git не имеет отношения к тегу Lisp (который в контексте Git назывался бы типом объекта). Чаще всего тег используется для отметки определённой точки в цепочке предков коммита.

объект тега

Объект, содержащий ссылку на другой объект и, подобно объекту коммита, способный содержать сообщение. Он также может содержать подпись (PGP); в этом случае он называется «подписанным объектом тега».

тематическая ветка

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

трейлер

Метаданные в формате «ключ — значение». Трейлеры иногда помещают в конец сообщения коммита. В других сообществах их могут называть «нижними колонтитулами» или «тегами». См. git-interpret-trailers[1].

дерево

Рабочее дерево working tree либо объект дерева вместе с зависимыми от него объектами блобов и деревьев (то есть сохранённое представление рабочего дерева).

объект дерева

Объект, содержащий список имён файлов и режимов доступа вместе со ссылками на соответствующие объекты блобов и/или деревьев. Дерево эквивалентно каталогу.

tree-ish (также treeish)

Объект дерева или объект, который можно рекурсивно разыменовать до объекта дерева. Разыменование объекта коммита даёт объект дерева, соответствующий верхнему каталогу редакции. К tree-ish относятся: commit-ish, объект дерева, объект тега, указывающий на объект дерева, объект тега, указывающий на объект тега, который указывает на объект дерева, и так далее.

ещё не созданный (unborn)

HEAD может указывать на ещё не существующую ветку, в которой пока нет ни одного коммита; такая ветка называется ещё не созданной. Чаще всего пользователи сталкиваются с такой веткой, впервые создавая репозиторий без клонирования из другого источника. HEAD будет указывать на ветку main (или master, в зависимости от конфигурации), которой ещё предстоит появиться. Некоторые операции также могут переключить вас на ещё не созданную ветку с помощью параметра orphan.

индекс с неразрешёнными слияниями

Индекс, содержащий записи индекса с неразрешёнными слияниями.

недостижимый объект

Объект, который недостижим из ветки, тега или любой другой ссылки.

вышестоящая ветка

Ветка branch по умолчанию, сливаемая с рассматриваемой веткой (или ветка, на которую перебазируется рассматриваемая ветка). Настраивается с помощью branch.<name>.remote и branch.<name>.merge. Если вышестоящей веткой для A является origin/B, иногда говорят: «A отслеживает origin/B».

рабочее дерево

Дерево фактически извлечённых файлов. Обычно рабочее дерево содержит содержимое дерева коммита HEAD, а также все локальные изменения, которые вы внесли, но ещё не зафиксировали.

рабочее дерево worktree

У репозитория может не быть привязанных рабочих деревьев (то есть это может быть bare-репозиторий) либо к нему может быть привязано одно или несколько рабочих деревьев. Одно «рабочее дерево» состоит из «рабочего дерева» и метаданных репозитория. Большая часть этих метаданных является общей для других рабочих деревьев одного репозитория, а некоторые данные хранятся отдельно для каждого рабочего дерева (например, индекс, HEAD и псевдоссылки вроде MERGE_HEAD, ссылки и файл конфигурации, относящиеся к конкретному рабочему дереву).

См. также

gittutorial[7], gittutorial-2[7], gitcvs-migration[7], giteveryday[7], Руководство пользователя Git

gitglossary

© 2005–2026 Linus Torvalds and others
Licensed under the GNU General Public License version 2.
https://git-scm.com/docs/gitglossary

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API