Gitolite 입문

8489 단어 gitosisgitolite
번역:https://github.com/sitaramc/gitolite
Gitolite 문서
===============================
본 고 는 Gitolite 의 설치 와 자주 사용 되 는 기능 의 사용 방법 을 포함 합 니 다. 더 자세 한 소개 가 필요 하거나 어떤 문 제 를 해결 하고 있 거나 여기 서 언급 되 지 않 은 기능 만 보고 싶다 면 Gitolite 의 온라인 문 서 를 읽 으 십시오. http://sitaramc.github.com/gitolite/master-toc.html
 
본 고 는 다음 과 같은 몇 장 을 포함한다.
  • 설치 및 배치
  • 새 사용자 나 코드 라 이브 러 리 추가
  • 사용자 돕 기
  • 기초 문법
  • 권한 제어
  • 그룹 정의 및 사용
  • 명령
  • 'rc' 파일
  • GIT 설정
  • GIT - DAEMON 통합
  • GITWEB 통합
  • --------------------------------------------------------------------
    설치 및 배치
    ---------------------
    서버 환경
  • 임의의 UNIX 운영 체제
  • SH
  • git 1.6.6+
  • perl 5.8.8+
  • openssh 5.0+
  • 독립 된 사용자 (본 고 는 이 사용자 의 이름 을 git 로 가정 합 니 다) 셸 에서 만 다른 사용자 의 'su git' 명령 에 의 해 사 용 됩 니 다
  • 설치 절차
  • 로그 인 시스템 에서 셸 을 열 고 git (즉, 앞에서 언급 한 독립 사용자, 번역자 주) 사용자
  • 로 전환 합 니 다.
  • 확보 ~ /. ssh / authorizedkeys 파일 이 존재 하지 않 거나 비어 있 습 니 다. (gitolite 는 이 파일 을 사용 하여 공개 키 파일 을 저장 합 니 다)
  • 공개 키 파일 이 준비 되 어 있 는 지 확인 하 십시오. 예 를 들 어 ~ / YourName. pub (공개 키 파일 을 만 드 는 방법: ssh - keygen - t rsa - f ~ /. ssh / YourName, 그 중에서 YourName 은 당신 에 게 의미 있 는 이름 입 니 다. 번역자 주)
  • 다음 명령 을 수행 합 니 다.
    git clone git://github.com/sitaramc/gitolite
    mkdir -p $HOME/bin
    gitolite/install -to $HOME/bin
    gitolite setup -pk YourName.pub
    마지막 줄 명령 이 잘못 되면 '빈' 디 렉 터 리 가 PATH 에 없 기 때 문 일 수 있 습 니 다. 빈 을 추가 하거나 직접 실행 할 수 있 습 니 다.
    $HOME/bin/gitolite setup -pk YourName.pub
  • 새 사용자 나 코드 라 이브 러 리 추가
    서버 에 새 사용 자 를 직접 수 동 으로 추가 하거나 코드 라 이브 러 리 를 만 들 지 마 십시오.Gitolite 는 'gitolite - admin' 이라는 특수 코드 라 이브 러 리 를 수정 하여 새 사용자, 코드 라 이브 러 리 생 성 및 접근 제어 규칙 설정 을 완성 합 니 다.
    ------
    코드 라 이브 러 리 를 관리 하려 면 로 컬 에서 다음 작업 을 하 십시오. (만약 아직 이렇게 하지 않 았 다 면)
    git clone git@host :gitolite-admin

    주의:
    서버 에서 비밀 번 호 를 입력 하 라 고 알려 주면 앞에서 말 한 준비 작업 이 이미 되 었 는 지 확인 하 십시오.
    명령 이 성공 하면 gitolite - admin 디 렉 터 리 에 두 개의 하위 폴 더 가 있 습 니 다: conf 와 keydir.
    새 사용자 alice, bob and carol 을 추가 하려 면 공개 키 를 요청 하고 이 공개 키 를 keydir 에 복사 합 니 다. 예 를 들 어 alice. pub, bob. pub, carol. pub 등 입 니 다.
    새 코드 라 이브 러 리 를 추가 하고 접근 제 어 를 설정 하려 면 conf / gitolite. conf 파일 을 편집 하고 파일 끝 에 다음 코드 를 추가 합 니 다.
    repo foo
                RW+         =   alice
                RW          =   bob
                R           =   carol

    방문 통제 에 대한 구체 적 인 소 개 는 '방문 통제' 장 을 참조 하 시기 바 랍 니 다.
    이 작업 을 완료 한 후 다음 명령 을 실행 하면 효력 이 발생 합 니 다.
    git add conf
    git add keydir
    git commit -m 'added foo, gave access to alice, bob, carol'
    git push

    push 가 완료 되면 gitolite 는 자동 으로 세 명의 새 사용 자 를 만 들 고 그들의 공개 키 파일 을 ~ /. ssh / authorized keys 파일 에 추가 하 며 'foo' 라 는 빈 코드 라 이브 러 리 를 만 듭 니 다.
    사용자 돕 기
    사용자 가 공개 키 파일 을 보 낼 때 이전 장 에서 언급 한 것 처럼 공개 키 를 서버 에 추가 하고 새로운 사용 자 를 추가 해 야 하 며 코드 라 이브 러 리 의 접근 주 소 를 알려 야 합 니 다. 일반적인 형식 은 'git clone' 입 니 다.git@host: repname ", 다른 형식 에 대해 서 는 git - clone 의 도움 을 참조 하 십시오.
    주:
    클 라 이언 트 코드 라 이브 러 리 에서 서버 가 암 호 를 입력 하 라 고 알려 주면 사용자 가 올 바 르 게 추 가 했 는 지 확인 하 십시오.
    사용 자 는 "ssh" 를 실행 할 수 있 습 니 다.git@hostinfo "명령 은 그들 이 접근 할 수 있 는 코드 라 이브 러 리 목록 을 보 려 고 합 니 다. 더 많은 명령 소 개 는 본 논문 의" 명령 "장 을 참조 하 십시오.
    기초 문법
  • 프로필 의 문법 은 매우 간단 합 니 다.
  • 모든 문 구 는 빈 칸 으로 구분 되 고 쉼표, 분점 등 이 없다
  • .
  • perl / shell 형식의 주석 사용
  • 코드 라 이브 러 리 의 이름 은 알파벳 으로 시작 해 야 합 니 다. 알파벳 뒤에 '...', '' 또는 '-' 를 포함 할 수 있 습 니 다. 간단 할 수록 좋 습 니 다. 이름 에 '/' 를 포함 할 수 있 습 니 다. 이렇게 하면 코드 라 이브 러 리 를 만 들 때 디 렉 터 리 계층 구조 로 저장 되 어 사용자 이름 을 메 일 형식 으로 관리 하거나 '@' 이후 부분
  • 을 포함 하지 않 습 니 다.
  • 줄 바 꿈 연결 문자 가 없습니다
  • 액세스 제어
    본 장 은 비교적 복잡 한 권한 수여 예시 로 설명 할 것 이다.
    Gitolite 의 방문 통제 가 매우 강하 다. 앞에서 보 여 준 것 은 모두 간단 한 용법 이다. 여기 서 우 리 는 약간 복잡 한 예 를 살 펴 보 자.
    repo foo
                RW+                     =   alice
                -   master              =   bob
                -   refs/tags/v[0-9]    =   bob
                RW                      =   bob
                RW  refs/tags/v[0-9]    =   carol
                R                       =   dave

    'clone' 과 'fetch' 와 같은 읽 기 동작 에 대해 서 는 사용자 의 규칙 에 하나 이상 의 읽 기 권한 (R, RW, RW +) 이 있 으 면 지정 한 코드 라 이브 러 리 에 대한 읽 기 동작 을 허용 합 니 다.
    "push" 동작 에 대해 제어 규칙 은 권한 (주 1) 과 refex (주 2) 가 대응 할 때 까지 순서대로 찾 습 니 다. 이때 권한 기호 가 "-" 이면 push 작업 을 금지 합 니 다. 그렇지 않 으 면 push 작업 을 허용 합 니 다. 일치 하 는 규칙 을 찾 지 못 하면 작업 을 금지 합 니 다.
    주 1: 권한 대응
  • RW 는 fast - forward 형식의 push 또는 생 성
  • 에 대응 합 니 다.
  • RW + 모든 종류의 push
  • - 어떠한 종류의 push
  • 에 도 대응 하지 않 습 니 다.
    주 2: refex 대응
    (refex = 정규 표현 식 에서 설명 하 는 분기 가 push 와 일치 합 니 다)
  • 빈 refex 는 'refs /. *'
  • 로 번역 되 었 습 니 다.
  • 'refs /' 로 시작 하지 않 는 refex 는 자동 으로 앞 에 'refs / heads /' 를 추가 합 니 다.
  • 마지막, '^' 문 자 는 이 refex 로 시작 하 는 모든 것 을 표시 합 니 다
  • the ref being pushed is matched against this resulting refex

  • 예제 코드 의 규칙 은 다음 과 같 습 니 다.
  • alice 는 모든 분기 와 태그 에 대해 모든 권한 을 가지 고 있 습 니 다. 생 성, push, 삭제, 리 셋 / 덮어 쓰기 등
  • bob 는 'master' 로 시작 하지 않 는 모든 지점 에 대해 fast - forward push 를 만 들 수 있 는 권한 을 가지 고 있 으 며, V + 디지털 스위치 로 시작 하지 않 는 모든 탭 이름 의 탭 을 만 들 수 있 습 니 다. 
  • carol 은 V + 숫자 로 시작 하 는 탭 을 만 들 수 있 습 니 다
  • dave 는 clone 과 fetch 만 읽 을 수 있 습 니 다
  • 그룹 정의 및 사용
    Gitolite 는 사용자 나 코드 라 이브 러 리 를 그룹 으로 나 누 어 관리 하 는 것 을 지원 합 니 다. 예 를 들 어:
        @staff       =   alice bob carol
        @interns    =   ashok
    
            repo secret
                RW      =   @staff 
    
            repo foss
                RW+     =   @staff 
                RW      =   @interns

    그룹의 정 의 는 누적 되 었 습 니 다. 아래 두 줄 의 정의 결 과 는 위의 첫 줄 과 같 습 니 다.
        @staff       =   alice bob
        @staff       =   carol

    그룹 정의
    @all-devs   =   @staff  @interns

    마지막 으로 @ all 은 내 장 된 특수 그룹 으로 모든 사용자 나 모든 코드 라 이브 러 리 를 대표 합 니 다.
    명령 하 다.
    사용 자 는 다음 과 같은 ssh 를 원 격 으로 사용 하여 명령 을 수행 할 수 있 습 니 다.
    ssh git@host  info

    이 명령 은 접근 할 수 있 는 모든 코드 라 이브 러 리 를 표시 하 는 데 사 용 됩 니 다.
    help 명령 은 사용 가능 한 모든 명령 을 표시 하 는 데 사 용 됩 니 다. 모든 명령 은 '- h' 매개 변수 로 명령 설명 을 볼 수 있 습 니 다.
    server 쪽 에 있 으 면 명령 을 더 많이 사용 할 수 있 습 니 다. 'gitolite help' 를 시도 해 보 세 요.
    rc 파일
    Some of the instructions below may require you to edit the rc file (~/.gitolite.rc on the server). The rc file is perl code, but you do NOT need to know perl to edit it. Just mind the commas, use single quotes unless you know what you're doing, and make sure the brackets and braces stay matched up.
    Git 설정
    Gitolite 는 원 격 서버 에 로그 인하 지 않 아 도 코드 라 이브 러 리 마다 git - config 의 값 을 설정 할 수 있 습 니 다.
    repo foo
                config hooks.mailinglist = [email protected]
                config hooks.emailprefix = '[foo] '
                config foo.bar = ''
                config foo.baz =

    경고:
    마지막 줄 은 설정 을 삭제 하 는 유일한 방법 입 니 다. 설정 파일 에서 해당 줄 을 직접 삭제 하 는 것 은 코드 라 이브 러 리 의. git / config 파일 에서 삭제 할 수 없습니다.
    보안 알림:
    서버 에서 스 크 립 트 를 실행 할 수 있 는 git - config 값 이 있 습 니 다. 모든 코드 라 이브 러 리 관리자 가 시스템 에 접근 하 는 계 정 이 있다 면 rc 파일 (~ /. gitolite. rc) 의 GIT CONFIG KEYS 를 다음 으로 변경 할 수 있 습 니 다.
    GIT_CONFIG_KEYS     =>  '.*'

    그렇지 않 으 면 Gitolite 에서 원 격 으로 변경 할 수 있 는 키 를 공백 으로 구 분 된 정규 표현 식 으로 지정 합 니 다. 예 를 들 어 다음 설정 은 "giteb" 또는 "gc" 로 시작 하 는 키 만 수정 할 수 있 습 니 다.
    GIT_CONFIG_KEYS     =>  'gitweb\..* gc\..*'

    GIT - DAEMON 과 통합
    Gitolite 는 모든 'daemon' 사용자 에 게 읽 기 권한 이 있 는 사용자 에 게 'git - daemon - export - ok' 파일 을 만 듭 니 다. 그러면 git - daemon 방식 으로 fetch 를 만 들 수 있 습 니 다. 예 를 들 어:
    repo foo
                R   =   daemon

    GITWEB 와 통합
    모든 "giteb" 사용자 가 읽 을 수 있 는 권한 이 있 는 코드 라 이브 러 리 는 procjects. list 파일 에 추 가 됩 니 다.
    repo foo
                R   =   gitweb

    또는 다음 명령 을 통 해 완성 합 니 다:
    repo foo
                config gitweb.owner         =   some person's name
                config gitweb.description   =   some description
                config gitweb.category      =   some category

    주의:
    파일 을 수정 할 수 있 는 권한 은 0027 (기본 값 0077) 이 며, giteb 는 git 그룹 에서 실 행 됩 니 다. 만 든 파일 과 폴 더 에 대해 서 는 'chmod - R' 을 실행 해 야 합 니 다.

    좋은 웹페이지 즐겨찾기