Onde é o local convencional para armazenar repositórios git em uma árvore de sistema de arquivos linux?


58

Se eu fizer uma analogia com a hospedagem de um servidor da Web, diria que os dados do git devem estar /var/git, para que meu repositório git esteja no/var/git/myrepo

P : Esse é o palpite certo?

Respostas:


31

Não há resposta certa ou errada aqui, exceto a ditada por sua própria religião pessoal e o conteúdo da página de hier(7)manual em seu sistema.

página de hiermanual típica do Linux ; página de hiermanual típica do BSD )

/var/git/*parece-me razoável pessoalmente. É onde eu mantenho o meu.


3
Da mesma forma, na pasta do Arch Linux, o apache é / srv / http (em vez de / var / www como algumas outras distribuições), então coloquei minhas coisas do git em / srv / git.
precisa saber é o seguinte

Em algum lugar sob / var / parece razoável, mas veja também a resposta de Denis R abaixo: serverfault.com/a/433584/45819 - ele o coloca em / var / lib / git por boas razões
mit

30

Coloque-o em um diretório (ou sistema de arquivos compartilhado) em /srv. É para isso que serve.

O /srvdiretório é destinado a dados específicos do site atendidos pelo sistema . Do padrão:

Esse principal objetivo de especificar isso é para que os usuários possam encontrar o local dos arquivos de dados para um serviço específico e para que serviços que exijam uma única árvore para dados somente leitura, dados graváveis ​​e scripts (como scripts cgi) possam ser colocados razoavelmente. Dados que são de interesse apenas de um usuário específico devem ir no diretório inicial desse usuário.

A metodologia usada para nomear subdiretórios /srvnão é especificada, pois atualmente não há consenso sobre como isso deve ser feito. Um método para estruturar dados abaixo /srvé por protocolo, por exemplo. ftp, rsync, www, E cvs. Em grandes sistemas, pode ser útil para estruturar /srvpelo contexto administrativo, como /srv/physics/www, /srv/compsci/cvs, etc. Esta configuração será diferente de um hospedeiro para outro. Portanto, nenhum programa deve confiar em uma estrutura de subdiretório específica de /srvdados existentes ou necessariamente armazenados em /srv. No entanto /srv, sempre deve existir em sistemas compatíveis com FHS e deve ser usado como o local padrão para esses dados.

As distribuições devem tomar cuidado para não remover arquivos colocados localmente nesses diretórios sem a permissão do administrador.


Em um sistema habilitado para SELinux, o diretório padrão é /var/www/gite os repositórios devem estar em seus subdiretórios. Ou, você pode usar, por exemplo, /srv/gite definir o contexto do arquivo para ser equivalente:

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

5
/home/git/

Isso pode parecer um pouco não convencional no começo, mas é muito razoável, pois esse diretório é feito para você (com permissões corretas) quando o faz sudo useradd git. Você pode simplesmente mudar para o usuário git cde executar imediatamente:

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

e coloque as chaves públicas de seus pares no arquivo recém-criado author_keys.

Depois de git init --bareseu projeto, o "url" é apenas ... espere ...

git@<server>:<project>

Quase como recomendado no livro "Pro Git": git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server
exic

1

Como voretaq7 disse, não há resposta certa ou errada sobre esse assunto. No entanto, se você deseja acompanhar os soft softs, parece que os softs do banco de dados armazenam seus dados em

/var/lib/soft

Por exemplo, para o Postgresql 9.1 no debian, a pasta é

/var/lib/postgresql/9.1/

Então, eu pessoalmente escolheria

/var/lib/git

1

Depende inteiramente de você. Idealmente, no entanto, você deve colocar o diretório de dados git em uma partição separada ou mesmo em um disco para facilitar as atualizações do sistema, etc.


1

No meu Arch Linux, tenho o /srv/httpapache (que é o padrão do sistema) e também o uso nos meus servidores http node.js. Da mesma forma, decidi colocar todos os repositórios do git /srv/git.

Eu uso o GitLab e também /srv/gité a pasta inicial do git nesse caso.

Em última análise, cabe a você. Descobri que é fácil lembrar de um formato semelhante a outros serviços em sua distribuição.


0

Se você usa algum frontend para git, basta ir aonde o pacote da sua distribuição quiser colocá-los. Qualquer outra coisa é apenas criar incompatibilidades desnecessárias.


1 / Não estou usando um frontend para o git 2 / Git não vem com uma recomendação sobre onde colocar repositórios git ... qualquer pasta onde você faz o git init é um repositório git.
Samuel Rossille

1 / Pelo front-end, eu assumiria o servidor git servindo os repositórios. 2 / qualquer servidor desse tipo, mesmo que apenas um servidor HTTP seja usado teria um local padrão. É claro que estamos falando sobre o local da hospedagem, quando você trabalha com o código, o .git está principalmente dentro do projeto.
precisa saber é o seguinte

0

Primeiro, com relação à sugestão de usar / srv, você assume que todos os repositórios git são usados ​​para sites. Pode ser verdade para você, mas você pode ter um software que não é um site.

Segundo, armazenando seus repositórios de código fora do / var / www / html ou / srv / html, você obtém dois bons benefícios. Você pode criar links simbólicos em seu repositório a qualquer nível, facilitando a ocultação de suas bibliotecas. Além disso, se a localização do seu repositório mudar, você não precisará modificar as configurações do host virtual. Em vez disso, basta ajustar seus links simbólicos.

Eu estava usando / var / repo, mas acho que / var / git é melhor, e vou usá-lo a partir de agora.


0

Quando estou baixando repositórios git, a fim de manter as configurações do site que eu implanto, eu as armazeno

/ data / repos / $ REPO_GROUP_OR_USER / $ REPO_NAME

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.