리눅스 파일 시스템 트리에서 git 저장소를 저장하는 일반적인 장소는 어디에 있습니까?


58

웹 서버 호스팅과 비유하면 git의 데이터는에 있어야 /var/git하므로 git 저장소는/var/git/myrepo

Q : 맞습니까?

답변:


31

여기에는 자신의 개인 종교에 의해 지시 된 것과 hier(7)귀하의 시스템 에있는 맨 페이지 의 내용을 제외하고는 옳고 그른 대답이 없습니다 .

전형적인 리눅스 hier맨 페이지 ; 일반적인 BSD hier맨 페이지 )

/var/git/*개인적으로 나에게 합리적인 것 같습니다. 그것이 내가 지키는 곳입니다.


3
마찬가지로 아치 리눅스에서 아파치의 폴더는 / srv / http (다른 배포판과 마찬가지로 / var / www 대신)이므로 / git / git에 git 자료를 넣습니다.
trusktr

어딘가의 / var 아래 / 합리적인 것뿐만 아니라, 아래 데니스 R의 대답을 참조하십시오 : serverfault.com/a/433584/45819는 - 그는의 / var / lib 디렉토리 / 좋은 이유와 자식으로두고
MIT

30

아래의 디렉토리 (또는 공유 파일 시스템)에 배치하십시오 /srv. 이것이 바로 이것입니다.

/srv디렉토리를 대상으로 시스템에서 제공하는 사이트 별 데이터 . 표준에서 :

이를 지정하는 주된 목적은 사용자가 특정 서비스에 대한 데이터 파일의 위치를 ​​찾을 수 있도록하고 읽기 전용 데이터, 쓰기 가능한 데이터 및 스크립트 (예 : cgi 스크립트)에 대해 단일 트리가 필요한 서비스를 합리적으로 배치 할 수 있도록하기위한 것입니다. 특정 사용자에게만 관심이있는 데이터는 해당 사용자의 홈 디렉토리에 있어야합니다.

하위 디렉토리의 이름을 지정하는 데 사용 된 방법론 /srv은 현재 지정 방법에 대한 합의가 없으므로 지정되지 않았습니다. 데이터를 구성하는 한 가지 방법은 /srv예를 들어 프로토콜입니다. ftp, rsync, www,와 cvs. 대형 시스템에서 그 구조에 유용 /srv같은 관리 컨텍스트 /srv/physics/www, /srv/compsci/cvs등이 설치 호스트에 따라 다를 것이다. 따라서 어떤 프로그램도 /srv기존 또는 특정 데이터 의 하위 디렉토리 구조에 의존해서는 안됩니다 /srv. 그러나 /srvFHS 호환 시스템에는 항상 존재해야하며 이러한 데이터의 기본 위치로 사용해야합니다.

분배는 관리자 권한없이이 디렉토리에서 로컬로 배치 된 파일을 제거하지 않도록주의해야합니다.


SELinux 가능 시스템에서 기본 디렉토리는입니다 /var/www/git. 그리고 repos는 서브 디렉토리에 있어야합니다. 또는 예를 들어 /srv/git파일 컨텍스트를 동일하게 설정할 수 있습니다.

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

5
/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>

"Pro Git"책에서 권장되는 것과 거의 비슷합니다 : git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server
exic

1

voretaq7이 말했듯이, 그러한 주제에 대한 옳고 그른 대답은 없습니다. 그러나 소프트를 따르려면 데이터베이스 소프트가 데이터를 저장하는 것으로 보입니다.

/var/lib/soft

예를 들어, debian의 Postgresql 9.1의 경우 폴더는

/var/lib/postgresql/9.1/

그래서 저는 개인적으로 선택합니다

/var/lib/git

1

전적으로 당신에게 달려 있습니다. 그러나 git data 디렉토리를 별도의 파티션이나 심지어 디스크에 두어 시스템 업그레이드 등을보다 쉽게하고, 사용 가능한 디스크 공간이 충분한 지 확인해야합니다.


1

내 아치 리눅스 /srv/http에서는 아파치 (시스템 기본값)를 가지고 있으며 node.js http 서버에도 사용합니다. 마찬가지로 모든 git 저장소를에 배치하기로 결정했습니다 /srv/git.

나는 GitLab을 사용하며, /srv/git그 경우에도 git의 홈 폴더입니다.

궁극적으로, 그것은 당신에게 달려 있습니다. 귀하의 배포판에있는 다른 서비스와 유사한 형식을 고수하는 것이 기억하기 쉽다는 것을 알았습니다.


0

git에 프론트 엔드를 사용하는 경우 배포판에 패키지 된 것이 배치하려는 위치로 이동하십시오. 다른 것들은 불필요하게 비 호환성을 일으키고 있습니다.


1 / git에 프론트 엔드를 사용하지 않습니다. 2 Git은 git 저장소를 어디에 두어야하는지에 대한 권장 사항을 제공하지 않습니다 ... git init을 수행하는 모든 폴더는 git 저장소입니다.
Samuel Rossille

1 / 프론트 엔드에서 리포지토리를 제공하는 자식 서버를 가정합니다. 2 / 그러한 서버는 HTTP 서버 만 사용하더라도 기본 위치를 갖습니다. 물론 우리는 호스팅 위치에 대해 이야기하고 있습니다. 코드로 작업 할 때 .git은 대부분 프로젝트 내부에 있습니다.
hultqvist

0

먼저 / srv 사용 제안과 관련하여 모든 자식 리포지토리가 웹 사이트에 사용된다는 가정하에 있습니다. 사실 일 수도 있지만 웹 사이트가 아닌 소프트웨어를 가질 수도 있습니다.

둘째, / var / www / html 또는 / srv / html 외부에 코드 리포지토리를 저장하면 두 가지 장점이 있습니다. 모든 레벨에서 리포지토리에 심볼릭 링크를 만들어 라이브러리를 쉽게 숨길 수 있습니다. 또한 리포지토리의 위치가 전혀 바뀌지 않으면 가상 호스트 구성을 수정할 필요가 없습니다. 대신 기호 링크를 조정하면됩니다.

나는 / var / repo를 사용하고 있었지만 / var / git이 더 낫다고 생각하고 앞으로부터 사용할 것입니다.


0

사이트 구성을 유지하기 위해 git repos를 다운로드 할 때 저장합니다.

/ data / repos / $ REPO_GROUP_OR_USER / $ REPO_NAME

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.