서버에 Git 배포

3425 단어 git
Git 서버를 설치하기 전에 기존 저장소를 현재 작업 디렉토리가 없는 저장소로 내보내야 합니다.복제할 때 --bare 옵션을 사용하면 됩니다.저장소의 디렉토리 이름은 일반적으로 .git 로 끝납니다.
$ git clone --bare my_project my_project.git
Cloning into bare repository 'my_project.git'...
done.

이 명령의 출력은 아마도 사람을 좀 이해하지 못하게 할 것이다.사실clone 조작은 기본적으로 git init 플러스git fetch에 해당하기 때문에 여기에 나타난 것은 사실git init의 출력이다. 먼저 빈 디렉터리를 구축한 다음에 데이터 대상을 전송하는 조작은 아무런 출력도 하지 않고 몰래 막후에서 실행된다.현재 디렉터리에 Git 디렉터리 데이터의 사본이 있습니다.
전반적인 효과는 다음과 같습니다.
$ cp -Rf my_project/.git my_project.git

그러나 프로필에 약간의 변화가 있지만 사용자에게는 사용 방식이 똑같아 아무런 영향이 없다.Git 저장소의 필수 원본 데이터만 추출하여 작업 디렉토리를 만들지 않고 해당 디렉토리에 저장합니다.

누드 창고를 서버로 옮기다


누드 창고의 사본이 생기면 나머지는 서버에 놓고 관련 프로토콜을 설정하는 것이다.도메인 이름이 my_project.git인 서버가 이미 설치되어 있고 SSH를 통해 접근할 수 있다고 가정하면, 우리는 모든 Git 저장소를 git.example.com 디렉터리에 저장할 계획이다.누드 창고를 복사하기만 하면
$ scp -r my_project.git [email protected]:/opt/git

이제 서버에 SSH 액세스 권한이 있고 /opt/git 디렉토리를 읽을 수 있는 모든 사용자는 다음 명령을 사용하여 항목을 복제할 수 있습니다.
$ git clone [email protected]:/opt/git/my_project.git

만약 SSH 사용자가 /opt/git 디렉터리에 쓰기 권한을 가지고 있다면, 그는 푸시 권한을 가지고 있다.프로젝트 디렉터리에서 /opt/git/my_project.git 명령을 실행하고 git init 옵션을 추가하면 Git는 자동으로 창고 디렉터리의 그룹 권한을 쓰기 가능으로 수정합니다. (주: 실제로는 --shared 다른 동작을 지정할 수 있습니다. 기본적으로 그룹 권한을 쓰기 가능 및 실행 --shared 으로 변경하기 때문에 g+sx 마지막에 얻을 수 있습니다.
$ ssh [email protected]
$ cd /opt/git/my_project.git
$ git init --bare --shared

이를 통해 알 수 있듯이 기존의 Git 창고에 따라 누드 창고를 만들고 동료와 SSH 접근권이 있는 서버에 놓는 것이 얼마나 쉬운지 알 수 있다.이제 같은 프로젝트에서 밀접한 협력을 시작할 수 있게 되었다.
주의해야 할 것은 이것은 확실히 소수의 사람들이 연결권을 가진 Git 서비스의 전부를 가설하는 것이다. 서버에 SSH로 로그인할 수 있는 계정을 가입하고 모두가 읽기와 쓰기 권한을 가진 곳에 누드 창고를 두는 것이다.모든 것이 준비되어 있으니 더 이상 필요 없다.
다음 몇 절에서 당신은 어떻게 더 복잡한 설정으로 확장하는지 알게 될 것입니다.이러한 내용은 모든 사용자에게 계정을 만드는 것을 피하고 창고에 공공 읽기 권한을 추가하며 웹 인터페이스를 가설하고 Gitosis 도구를 사용하는 방법을 포함한다.그러나 단지 몇 사람과 비공개 프로젝트에서 합작한다면 SSH 서버와 누드 창고만으로도 충분하다. 이 점을 기억하면 된다.

소형 설치


설비가 적거나 소규모 개발팀에서 Git를 시도하고 싶다면 모든 것이 간단하다.Git 서비스를 설치하는 데 가장 복잡한 점은 계정 관리에 있다.특정 사용자에게 읽을 수 있는 창고가 필요하고 다른 사용자에게 읽기와 쓰기 권한을 주어야 한다면 방문과 허가의 안배가 비교적 어렵다.

SSH 연결


만약 모든 개발 구성원이 SSH로 접근할 수 있는 서버가 있다면, 첫 번째 서버를 가설하는 것은 매우 간단해져서 거의 아무것도 할 필요가 없을 것이다 (지난 절에서 소개한 바와 같이).창고에 대한 더 복잡한 접근 제어가 필요하다면 서버 운영체제의 로컬 파일 접근 허가 메커니즘을 사용하면 된다.
만약 팀의 모든 사람이 창고에 쓰기 권한이 있고 서버에 계정을 만들 수 없다면 SSH 연결을 제공하는 것이 유일한 선택이다.우리는 창고를 공유하는 서버에 SSH 서비스가 설치되어 있고 이를 통해 서버에 접근한다고 가정합니다.
팀의 모든 사람이 방문권을 가질 수 있는 여러 가지 방법이 있다.첫 번째 방법은 모든 사람에게 계좌를 만들어 주는 것이다. 단도직입적이지만 번거롭다.반복 실행rws을 하고 모두에게 임시 비밀번호를 설정하는 것은 재미없다.
두 번째 방법은 호스트에 adduser 계정을 만들어서 쓰기 권한이 필요한 사람마다 SSH 키를 보내고 git 계정의 git 파일에 가입하는 것이다.이렇게 되면 모든 사람들이 ~/.ssh/authorized_keys 계정을 통해 호스트에 접근할 것이다.이는 제출된 데이터에 전혀 영향을 주지 않습니다. 호스트에 액세스하는 데 사용되는 ID는 제출 객체의 제출자 정보에 영향을 주지 않습니다.
또 다른 방법은 SSH 서버가 어떤 LDAP 서비스나 이미 설정된 집중 권한 수여 메커니즘을 통해 권한을 부여하는 것이다.모든 사람이 호스트의 셸 접근권을 얻을 수 있다면, 사용 가능한 SSH 권한 수여 메커니즘은 모두 같은 효과를 얻을 수 있다.
http://git-scm.com/book/zh/%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84-Git-%E5%9C%A8%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E9%83%A8%E7%BD%B2-Git

좋은 웹페이지 즐겨찾기