Чтобы быть немного более полным, Git работает с:
- рабочее дерево (корень которого, где вы сделали
git init
)
- " путь к репозиторию Git " (где есть
.git
, в котором будут храниться ревизии всех ваших файлов)
GIT_DIR
- это переменная среды, которая может быть абсолютным или относительным путем к текущему рабочему каталогу.
Если он не определен, «путь к репозиторию git» по умолчанию находится в корневом каталоге вашего рабочего дерева (опять же, где вы сделали git init
).
Вы можете фактически выполнить любую команду Git из любого места на вашем диске, при условии, что вы указали путь к рабочему дереву и путь к репозиторию Git:
git command --git-dir=<path> --work-tree=<path>
Но если вы выполняете их в одной из подкаталогов репозитория Git (без указания GIT-DIR или пути к рабочему дереву), Git будет просто просматривать текущий и родительский каталоги, пока не найдет .git
, предположим, что это это также корневой каталог вашего рабочего дерева, и используйте этот .git
как единственный контейнер для всех ревизий ваших файлов.
Примечание: .git
также скрыто в Windows (msysgit).
Вам нужно было бы сделать dir /AH
, чтобы увидеть это.
git 2.9 (июнь 2016 г.) позволяет настроить .
Обратите внимание, что Git 2.18 (Q2 2018) запускает процесс для эволюции того, как Git хранит объекты, путем рефакторинга внутренней глобальной структуры данных, чтобы сделать это возможным
чтобы открыть несколько хранилищ, поработайте с ними, а затем закройте их.
См. коммит 4a7c05f , коммит 1fea63e (23 марта 2018 г.) Джонатан Нидер (artagnon
) .
См. commit bd27f50 , commit ec7283e , commit d2607fa , commit a68377b , commit e977fc7 , commit e35454f , commit 332295d , commit 2ba0bfd , commit fbe33e2 , commit cf78ae4 , commit 13068bf , commit 77f012e , commit 0b20903 , commit 93d8d1e , commit ca5e6d2 , commit cfc62fc , commit 13313fc , коммит 9a00580 (23 марта 2018 г.) Stefan Beller (stefanbeller
) .
(Объединено с Junio C Hamano - gitster
- в коммит cf0b179 , 11 апреля 2018 г.)
repository
: ввести поле хранилища необработанных объектов
Поле хранилища необработанных объектов будет содержать любые объекты, необходимые для доступа
к объектам в данном хранилище.
Этот патч представляет хранилище необработанных объектов и заполняет его
objectdir
, который раньше был частью структуры хранилища.
Когда структура получает членов, мы также заполним функцию для очистки
память для этих членов.
На следующем шаге мы представим struct object_parser
, который будет
дополнить синтаксический анализ объекта в структуре хранилища:
- Анализатор необработанных объектов - это слой, который обеспечивает доступ к содержимому необработанных объектов,
в то время как код анализатора объектов более высокого уровня будет анализировать необработанные объекты и
отслеживает родительские и другие объектные отношения, используя 'struct object
'.
Пока добавьте только нижний уровень в структуру хранилища.