Где Git хранит файлы? - PullRequest
68 голосов
/ 21 июня 2010

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

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

Где Git фактически хранит этот репозиторий?(Это на моей локальной машине, но где?)

Ответы [ 9 ]

90 голосов
/ 21 июня 2010

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

28 голосов
/ 21 июня 2010

Чтобы быть немного более полным, 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'.

    Пока добавьте только нижний уровень в структуру хранилища.

17 голосов
/ 02 сентября 2012

Если вы работаете на компьютере с Windows на английском языке, путь к хранилищу Git по умолчанию будет C:\Documents and Settings\< current_user>\, потому что в Windows локальные настройки Git по умолчанию находятся в C:\Documents and Settings\< current_user>\.git, и поэтому Git создает отдельную папку для каждого repo/clone в C:\Documents and Settings\< current_user>\ и есть все каталоги клонированного проекта.

Например, если вы устанавливаете Symfony 2 с

git clone git://github.com/symfony/symfony.git

каталог и файл Symfony будут в

C:\Documents and Settings\< current_user>\symfony\
8 голосов
/ 21 июня 2010

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

4 голосов
/ 27 марта 2014

Я нахожусь в Windows и нашел свое местоположение, щелкнув правой кнопкой мыши программу Git Bash в моем меню Пуск и выбрав Свойства.На вкладке «Ярлык» отображается значение «Начать с:».Для меня это было %HOMEDRIVE%%HOMEPATH%, поэтому я открыл приглашение CMD и набрал echo %HOMEDRIVE%%HOMEPATH%, чтобы увидеть фактическое местоположение.

3 голосов
/ 02 февраля 2014

Я также не смог найти свой git-репозиторий. Я использую Windows 8 и создал свой репозиторий (по ошибке) под C:\Program Files (x86)\Git. Я мог видеть папку хранилища в bash, но не в cmd или Windows Explorer.

Тогда я вспомнил про функцию «Виртуальный магазин» в Windows. Моя папка репозитория была фактически создана под C:\Users\<username>\AppData\Local\VirtualStore\Program Files (x86)\Git\<myrepo>, и там была моя папка .git!

3 голосов
/ 21 июня 2010

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

0 голосов
/ 06 апреля 2019

Если вы ищете, где была создана папка проекта.Я заметил, что когда набрал git bash.

$ git init projectName

, он скажет мне, где находится папка проекта для этого проекта.

0 голосов
/ 14 апреля 2014

обычно идет в папку «Документы» в Windows: C: \ Users \ <«имя учетной записи пользователя»> \ Documents \ GitHub

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...