Вопрос: Где обычное место для хранения репозиториев git в дереве файловой системы Linux?


Если я сделаю аналогию с размещением веб-сервера, я бы сказал, что данные git должны быть в /var/git, поэтому мой репозиторий git будет /var/git/myrepo

Q: Правильно ли это?


51
2017-09-28 14:07


Источник




Ответы:


Здесь нет правильного или неправильного ответа, кроме тех, которые продиктованы вашей личной личностью и содержанием hier(7) manpage в вашей системе.

типичный Linux hier страница руководства ; типичный BSD hier страница руководства)

/var/git/* Кажется разумным для меня лично. Вот где я держу свою.


29
2017-09-28 14:32



Аналогично, в папке Apache Apache Linux есть / srv / http (вместо / var / www, как и некоторые другие дистрибутивы), поэтому я помещал свой git-файл в / srv / git. - trusktr
Где-то под / var / представляется разумным, но см. Также ответ Дениса R ниже: serverfault.com/a/433584/45819 - он поместил его в / var / lib / git с вескими причинами - mit


Поместите его в каталог (или разделяемую файловую систему) в /srv, Для этого это и есть.

/srv каталог предназначен для данные, специфичные для сайта, обслуживаемые системой, Из стандарта:

Эта основная цель заключается в том, чтобы пользователи могли найти   расположение файлов данных для конкретного сервиса и   услуги, для которых требуется одно дерево для данных только для чтения, записываемые данные   и скрипты (такие как скрипты cgi) могут быть размещены достаточно удобно. Данные, которые   представляет интерес только для конкретного пользователя, который должен находиться в этом доме пользователя   каталог.

Методология, используемая для обозначения подкаталогов /srv не указывается как   в настоящее время нет консенсуса относительно того, как это следует делать. Один метод   для структурирования данных в /srv по протоколу, например. ftp, rsync, www,   а также cvs, На больших системах может быть полезно структурировать /srv от   административный контекст, такой как /srv/physics/www, /srv/compsci/cvs,   и т. д. Эта настройка будет отличаться от хоста к хосту. Поэтому никакая программа   следует полагаться на определенную структуру подкаталогов /srv существующих или   данные обязательно сохраняются в /srv, Однако /srv должен всегда   существуют в системах, совместимых с FHS, и их следует использовать как   местоположение для таких данных.

Распределения должны заботиться о том, чтобы не удалять локально размещенные файлы в   эти каталоги без разрешения администратора.


В системе с поддержкой SELinux каталог по умолчанию /var/www/git, и репозитории должны быть в их подкаталогах. Или, вы можете использовать, например. /srv/git и установите для контекста файла эквивалент:

semanage fcontext -a -e /var/www/git /srv/git

27
2017-10-01 12:13





/home/git/

Сначала это может показаться немного нетрадиционным, но это очень разумно, поскольку этот каталог создан для вас (с правильными разрешениями), когда вы это делаете sudo useradd git, Вы можете просто переключиться на пользователя git, cd и немедленно запустить:

$ mkdir .ssh; chmod 700 .ssh
$ touch .ssh/authorized_keys; chmod 600 .ssh/authorized_keys

и поместите открытые ключи ваших сверстников в только что созданный файл authorized_keys.

После Вас git init --bare ваш проект, «url» тогда просто ... ждет его ...

git@<server>:<project>

5
2018-03-03 20:12



Почти как рекомендуется в книге «Pro Git»: git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server - exic


Как сказал voretaq7, нет правильного или неправильного ответа по такому вопросу. Тем не менее, если вы хотите следить за программами, кажется, что программные файлы базы данных хранят свои данные в

/var/lib/soft

Например, для Postgresql 9.1 на debian папка

/var/lib/postgresql/9.1/

Поэтому я бы лично выбрал

/var/lib/git

1
2017-10-01 10:03





Это полностью зависит от вас. Оптимально, однако, вы должны поместить git data dir на отдельный раздел или даже диск, чтобы сделать обновления системы и т. Д. Проще и, конечно же, вам нужно убедиться, что на диске достаточно свободного места.


1
2018-03-01 10:25





На моей Arch Linux у меня есть /srv/http для apache (который является системным по умолчанию), и я использую его для моих http-серверов node.js. Аналогичным образом я решил просто поместить все репозитории git в /srv/git,

Я использую GitLab и /srv/git это домашняя папка для git в этом случае тоже.

В конечном счете, это зависит от вас. Я обнаружил, что придерживаться формата, аналогичного другим сервисам в вашем дистрибутиве, легко запомнить.


1
2018-01-30 17:05





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


0
2018-03-01 18:10



1 / Я не использую интерфейс для git 2 / Git doens't приходят с рекомендациями о том, где разместить git-репозитории ... любая папка, в которой вы делаете git init, является репозиторием git. - Samuel Rossille
1 / По фронту я бы предположил, что сервер git, обслуживающий репозитории. 2 / любой такой сервер, даже если используется только HTTP-сервер, будет иметь местоположение по умолчанию. Конечно, мы говорим о местоположении для хостинга, когда вы работаете с кодом .git в основном внутри проекта. - hultqvist


Во-первых, в отношении предложения использовать / srv, вы исходите из предположения, что все хранилища git используются для веб-сайтов. Это может быть правдой для вас, но у вас может быть часть программного обеспечения, которое не является веб-сайтом.

Во-вторых, сохраняя ваши репозитории кода вне / var / www / html или / srv / html, вы получаете две хорошие преимущества. Вы можете создавать символические ссылки в своем репо на любом уровне, что упрощает скрытие ваших библиотек. Кроме того, если ваше местоположение репозитория вообще меняется, вам не нужно изменять настройки виртуального хоста. Вместо этого вы просто корректируете свои символические ссылки.

Я использовал / var / repo, но я думаю, что / var / git лучше, и с этого времени будет использоваться.


0
2017-11-21 17:44