Ответ 1
Вот попытка заполнить ваш глоссарий (с верхней части головы, пытаясь использовать мои собственные слова):
-
репо, репозиторий. Это ваша база данных объектов, в которой хранится ваша история и конфигурация. Может содержать несколько ветвей. Часто он также содержит рабочую строку.
-
a git, git ": никогда не слышал, извините." git", вероятно, описывает само программное обеспечение, но я не уверен
-
index, промежуточная область:. Это "кеш" между вашей рабочей сетью и вашим репозиторием. Вы можете добавлять изменения в индекс и строить свой следующий шаг шаг за шагом. Когда ваш индексный контент соответствует вашим любимым, вы можете создать фиксацию из него. Также используется для хранения информации во время неудачных слияний (ваша сторона, их сторона и текущее состояние)
-
clone: Клон репозитория ( "просто другой репозиторий" ) или действие ( "клонировать репозиторий (создает новый клон)" )
-
commit: Состояние вашего проекта в определенное время. Содержит указатель на его родительский фиксатор (в случае слияния: несколько родителей) и указатель на структуру каталогов в этот момент времени.
-
Отрасль:. Разная линия разработки. Ветвь в git - это просто "метка", которая указывает на фиксацию. Вы можете получить полную историю через родительские указатели. По умолчанию ветка является локальной для вашего репозитория.
-
дерево: В принципе, это каталог. Это всего лишь список файлов (blobs) и подкаталогов (деревьев). (Список также может содержать фиксации в случае использования подмодулей, но это расширенная тема)
-
upstream: После клонирования репозитория вы часто называете это "оригинальное" хранилище "вверх по течению". В git он псевдоним
origin
-
голова: Верхняя фиксация ветки (фиксация метки указывает на)
-
HEAD: Символьное имя для описания зафиксированного в настоящий момент фиксации. Часто верхняя фиксация
-
версия: Возможно, это будет то же самое, что и фиксация. Также может означать выпущенную версию вашего проекта.
-
tag: Описательное имя, присвоенное одному из ваших коммитов (или деревьев или капли). Может также содержать сообщение (например, журнал изменений). Теги могут быть криптографически подписаны с GPG.
-
архив: Простой архив (.tar,.zip), ничего особенного wrt git.
Патч -
:. Конец экспортируется в текстовый формат. Может быть отправлено по электронной почте и применено другими пользователями. Содержит исходный автор, фиксацию сообщений и различий в файлах.
-
подчинение: не знаю. Отправка патча в проект может быть?
-
changeet: Синоним для "commit"
-
stash: git позволяет вам "сбрасывать" изменения. Это дает вам чистое рабочее дерево без каких-либо изменений. Позже их можно "выскочить", чтобы их вернули. Это может быть спасателем жизни, если вам нужно временно работать с несвязанным изменением (например, исправлением ошибки времени по времени)
-
объект: может быть одним из
commit
,tree
,blob
,tag
. Объект связал свой хэш SHA1, на который он ссылается (фиксация с iddeadbeaf
, деревоdecaf
). Хэш идентичен между всеми репозиториями, которые используют один и тот же объект. Он также гарантирует целостность репозитория: вы не можете изменять прошлые коммиты, не меняя хэши всех дочерних коммитов. -
(module,) subodule: Репозиторий, включенный в другой репозиторий (например, внешняя библиотека). Продвинутый материал.
-
revspec: Обозначение revspec (или выражение revparse) описывает определенный объект git или набор коммитов через то, что называется расширенным синтаксисом SHA1 (например,
HEAD
,master~4^2
,origin/master..HEAD
,deadbeaf^!
,...) -
refspec:. Параметр refspec описывает сопоставление между удаленными и локальными ссылками во время операций Fetch или Push
-
история: Описывает все предковские коммиты до фиксации, возвращаясь к первой фиксации.
Вещи, которые вы не упомянули, но, вероятно, хорошо знать:
Все, что вы делаете, является локальным для вашего репозитория (либо создается git init
, либо git clone git://url.com/another/repo.git
). В git имеется несколько команд, которые взаимодействуют с другими репозиториями (a.k.a. interwebz), включая clone
, fetch
, pull
, push
.
Push и pull используются для синхронизации репозиториев. Вытяните объекты fetch
es из другого репозитория и объедините их с вашей текущей веткой. Push используется для внесения ваших изменений и push
их в другой репозиторий. Вы не можете нажимать одиночные коммиты или изменения, вы можете нажать фиксацию, включая ее полную историю.
Один репозиторий может содержать несколько ветвей, но не нужно. Разница по умолчанию в git называется master
. Вы можете создать столько ветвей, сколько хотите, слияние - это кусок пирога с git. Филиалы являются локальными, пока вы не запустите git push origin <branch>
.
A commit описывает полное состояние проекта. Эти состояния можно сравнивать друг с другом, что создает "diff" (git diff origin/master master
= см. Различия между origin/master
и master
)
Git довольно эффективен, когда дело доходит до подготовки ваших коммитов. Ключевым элементом здесь является "индекс" (или "промежуточная область" ). Вы можете добавить отдельные изменения в индекс (используя git add
), пока не увидите, что индекс выглядит хорошо. git commit
запускает ваш текстовый редактор, и вам необходимо предоставить сообщение о фиксации (почему и как вы это сделали); после ввода вашего сообщения о фиксации git создаст новую фиксацию - содержащую содержимое индекса - поверх предыдущего фиксации (родительский указатель - SHA1 предыдущего фиксации).