Где Мерзавец хранит файлы?

Я просто выполнил следующие команды на своем проекте Ruby on Rails:

git init
git add .
git commit -a -m 'Initial'

Где Мерзавец на самом деле хранит этот репозиторий? (Это находится на моей локальной машине, но где?)

68
задан Peter Mortensen 11 June 2013 в 12:47
поделиться

4 ответа

Он создаст ваш репозиторий в папке .git в текущем каталоге.

91
ответ дан 24 November 2019 в 14:11
поделиться

Чтобы быть немного более полным, 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 (второй квартал 2018 г.) запускает процесс развития того, как Git хранит объекты, путем рефакторинга внутренней глобальной структуры данных, чтобы сделать возможным чтобы открыть несколько репозиториев, поработайте с ними, а затем закройте их.

См. commit 4a7c05f , commit 1fea63e (23 марта 2018 г.) от Джонатана Нидера ( артаньон ) .
См. фиксация bd27f50 , фиксация ec7283e , фиксация d2607fa , фиксация a68377b , фиксация e977fc7 , фиксация e35454f , commit 332295d , commit 2ba0bfd , commit fbe33e2 , commit cf78ae4 , commit 13068bf , commit 77f012e , commit 0b20903 , commit 93d8d1e , commit ca5e6d2 , commit cfc62fc , commit 13313 , commit 9a00580 (23 марта 2018 г.) от Стефана Беллера ( stefanbeller ) .
(Объединено Junio ​​C Hamano - gitster - в commit cf0b179 , 11 апреля 2018 г.)

репозиторий : введите исходный код поле хранилища объектов

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

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

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

На более позднем этапе мы представим struct object_parser , которая будет дополняют синтаксический анализ объекта в структуре репозитория:

  • Анализатор необработанных объектов - это уровень, который будет обеспечивать доступ к необработанному содержимому объекта,
  • в то время как код анализатора объектов более высокого уровня будет анализировать необработанные объекты и отслеживает отцовство и другие отношения между объектами, используя ' struct object '.

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

28
ответ дан 24 November 2019 в 14:11
поделиться

В корневом каталоге проекта есть скрытый .git каталог, который содержит конфигурацию, репозиторий и т.д.

8
ответ дан 24 November 2019 в 14:11
поделиться

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

3
ответ дан 24 November 2019 в 14:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: