기토시스 대 기토라이트?
프로젝트를 팀과 공유하기 위해 git 서버를 설치하려고 합니다.git 접근이 필요한 개발자별로 SSH 접근이 가능한 사용자 계정을 서버에 만들고 싶지 않습니다.이 문제를 다루는 동시 해결책은 gitosis와 gitolite 두 가지인 것 같습니다.
두 솔루션 간의 비교를 찾을 수 없었습니다.그들 사이의 주요한 차이점은 무엇입니까?비슷한 해결책이 또 있습니까?
프로젝트를 팀과 공유하기 위해 git 서버를 설치하려고 합니다.
그냥 쓰셔도 돼요.
원격 서버에 필요한 것은 git 서버뿐입니다.세부적인 권한이 필요하지 않은 경우(팀과 공유하는 것이 가능성을 시사하는 경우) 또는 기타 기능이 필요하지 않은 경우에는 Gitolite 등이 필요하지 않습니다.
노인스톨
원격 서버에서 사용 가능한 경우, 아무것도 하지 않고 바로 요청한 작업을 수행할 수 있습니다.
ssh [user@]server
cd repos/are/here/
mkdir project.git
cd project.git
git init --bare
로컬:
cd projects/are/here/project
git remote add origin [user@]server:repos/are/here/project.git
git push -u origin master
깃 서버를 설정하는 것은 쉽습니다.
전용 git 사용자로 작업을 수행하려면 git 서버를 설정하는 문서가 짧습니다. 이는 실제로 수행하기가 매우 쉽기 때문입니다.
요약하면:
- 설치 git
- git라는 이름의 사용자 만들기
- 당신과 당신 팀의 공용 키를 깃 사용자의 키에 추가합니다.
.ssh/authorized_keys
파일 - git 사용자의 셸을 다음으로 변경합니다.
git-shell
- 서버에 리포지토리 만들기
- git pull/git@yourserver.com 로 pushing 시작
전용 git 사용자를 사용하는 것과 사용하지 않는 것의 유일한 차이점은 git 사용자가 사용하도록 설정하는 것입니다.git-shell
다른 일을 할 수 없을 겁니다깃 서버 역할을 한다는 점에서 무설치 솔루션과 동일합니다.
가장 큰 차이점은 이제는 깃증이 더 이상 활동적으로 유지되지 않고 더 이상 쓸모가 없다는 것입니다.
Gitolite는 훨씬 더 기능적으로 완성되었고, 세 번째 버전을 출시했습니다.
가장 흥미로운 기능은 가상 참조(VREF, 줄여서 VREF)로, 원하는 개수만큼 업데이트 후크를 선언할 수 있으며, 이를 통해 푸시 바이를 제한할 수 있습니다.
dir/파일 이름:
하위 개발자들이 메이크 파일에 변경사항을 적용하는 것을 원하지 않는다고 하자.
- VREF/NAME/Makefile = @junior-devs
새 파일 수:
하위 개발자가 커밋당 9개 이상의 파일을 푸시하는 것을 원하지 않는다고 가정해 보십시오.
- VREF/COUNT/9/NEWFILES = @junior-devs
고급 파일 형식 탐지:
파일에 표준 확장자가 있는 경우가 있지만('gitignore'가 될 수 없음) 실제로는 자동으로 생성됩니다.그 방법은 다음과 같습니다.
- VREF/FILETYPE/AUTOGENERATED = @all
탐지 메커니즘을 보려면 을 참조하십시오.작성자 이메일 확인:
어떤 사람들은 "자신의 커밋만 강요할 수 있다"고 보장하고 싶어합니다.
- VREF/EMAIL-CHECK = @all
보세요.커밋에 대한 투표:
커밋에 대한 투표의 기본적인 구현은 놀라울 정도로 쉽습니다.
- VREF/EMAIL-CHECK = @all
.
# 2 votes required to push master, but trusted devs don't have this restriction
# RW+ VREF/VOTES/2/master = @trusted-devs
# - VREF/VOTES/2/master = @devs
구현 방법은 을 참조하십시오.등등...
별론으로.필요에 따라 Gerrit을 사용할 수도 있습니다.
먼저 Gerrit은 Code review에 사용되는 것으로 보이지만 실제로는 사용자 관리에도 사용할 수 있고 정의된 권한도 부여할 수 있습니다.코드 검토(액세스 제어를 통해)를 무시하고 프로젝트 및 ssh-key 관리에만 사용할 수 있습니다.Gerrit은 매우 강력한 접근 통제 메커니즘을 가지고 있습니다.
접근 제어 문서에 정의된 분기, 태그 또는 상상할 수 있는 모든 항목을 푸시하도록 제한할 수 있습니다.
더 빠르고 더러운 솔루션을 위해서는 git 데몬을 사용하고 peer-to-peer로 이동하면 됩니다.그 일을 하는 것에 대한 기사가 여기 있습니다.
편집: 이것이 OP의 질문에 엄격하게 대답하지 않는다는 것을 알고 있습니다.기업용 github 계정이 설정될 때까지 코드를 공유하는 다운되고 더러운 방법을 찾다가 이 문제를 발견한 저와 같은 사람들을 위해 주로 여기에 이 글을 올렸습니다.
LDAP 액세스, 세밀한 액세스 제어 등으로 git 서버를 작동시키기 위해 한동안 빈둥거렸습니다.계시를 발견했습니다.Gitlab 사용:
- 깃 저장소
- 세밀한 접근(faik gitlab은 후드 아래에 gitolite를 사용함)
빠르고 빠른 설치 방법을 원하는 경우: bitnami installer를 사용합니다.
언급URL : https://stackoverflow.com/questions/10888300/gitosis-vs-gitolite
'programing' 카테고리의 다른 글
프레임 포인터는 언제 생략해야 합니까? (0) | 2023.10.29 |
---|---|
장고에서 jQuery/Ajax와 함께 포스팅하려면 어떻게 해야 합니까? (0) | 2023.10.29 |
AngularJS에서 쿼리 문자열 제거 (0) | 2023.10.24 |
앵커(링크)의 밑줄을 제거하는 방법? (0) | 2023.10.24 |
.h에서 type def'd struct를 전달하는 방법 (0) | 2023.10.24 |