Директория Git и рабочая директория
Директория Git
«Директория Git» – это директория в которой хранится вся история и мета-информация Git о Вашем проекте, включая все объекты (коммиты, деревья, blob, теги), указатели на различные ветки и прочее.
Для каждого проекта есть только одна своя «директория Git» (в отличии от SVN или CSV, которые добавляют свой служебный каталог в каждую директорию проекта) с именем ‘.git’ (по умолчанию, но не обязательно что бы имя было именно таким) в корне проекта. Если посмотреть содержимое этой директории, вы сможете увидеть все свои самые важные файлы:
.
|-- HEAD # указатель на текущую ветку
|-- config # настройки предпочтений
|-- description # информация о проекте
|-- hooks/ # пре и пост перехватчики действий
|-- index # индексные файлы (смотри следующую секци)
|-- logs/ # история Ваших веток
|-- objects/ # объекты (коммиты, деревья, blob`ы, теги)
`-- refs/ # указатели на ветки
(так же могут быть другие файлы и директории, но в настоящий момент это не важно)
Рабочая директория
«Рабочая директория» Git представляет собой директорию в которой хранится текущая (рабочая) копия файлов из репозитория. Файлы из этой директории могут удаляться и заменяться Git`ом при переключении между ветками – это нормальное поведение. Вся Ваша история хранится в «Директории Git»; рабочая директория это просто временная копия файлов репозитория, с которыми вы можете работать (добавлять, удалять изменять) до следующего коммита.
Перевод, оригинал статьи: http://book.git-scm.com/1_git_directory_and_working_directory.html