Git 서버 설치 방법
1. Git 서버 설치
우리는 Ubuntu를 예로 들었다.우선git 서버에'git'라는 사용자를 만들고 그것을 위한 사용자를 만듭니다.ssh 디렉토리.그리고 권한을 git 사용자만 읽기 및 쓰기 권한으로 설정합니다
$ sudo adduser git
$ su git
$ cd
$ mkdir .ssh
$ chmod 700 .ssh
다음에 개발자의 SSH 키를 이 사용자의 authorized 에 추가합니다.keys 파일에서만약 네가 전자 우편을 통해 몇 개의 공개 키를 임시 파일에 병존시켰다면.반복합니다. 공개 키는 대체로 다음과 같습니다.
$ cat /tmp/id_rsa.john.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCB007n/ww+ouN4gSLKssMxXnBOvf9LGt4L
ojG6rs6hPB09j9R/T17/x4lhJA0F3FR1rP6kYBRsWj2aThGw6HXLm9/5zytK6Ztg3RPKK+4k
Yjh6541NYsnEAZuXz0jTTyAUfrtU3Z5E003C4oxOj6H0rfIF1kKI9MAQLMdpGW1GYEIgS9Ez
Sdfd8AcCIicTDWbqLAcU4UpkaX8KyGlLwsNuuGztobF8m72ALC/nLF6JLtPofwFBlgc+myiv
O7TCUSBdLQlgMVOFq1I2uPWQOkOWQAHukEOmfjy2jctxSDBQ220ymjaNsHT4kgtZg2AYYgPq
dAv8JggJICUvax2T9va5 gsg-keypair
그것들을 하나하나 authorized에 추가하기만 하면keys 파일 끝 부분과 함께 authorizedkeys는git 사용자에게만 읽기와 쓰기 권한을 설정합니다.
$ cat /tmp/id_rsa.john.pub >> ~/.ssh/authorized_keys
$ cat /tmp/id_rsa.josie.pub >> ~/.ssh/authorized_keys
$ cat /tmp/id_rsa.jessica.pub >> ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
현재 --bare 옵션으로git init를 실행하여 누드 창고를 만들 수 있습니다. 작업 디렉터리가 없는 창고를 초기화합니다.
$ cd /opt/git
$ mkdir project.git
$ cd project.git
$ git --bare init
이때 Join, Josie 또는 Jessica는 그것을 원격 창고로 추가하여 하나의 지점으로 전송하여 첫 번째 버전의 프로젝트 파일을 창고에 업로드할 수 있다.새 항목을 추가할 때마다 셸을 통해 호스트에 로그인하고 누드 창고 디렉터리를 만들어야 합니다.Google은git 사용자 및 프로젝트 창고에 있는 호스트 이름으로gitserver를 사용해도 괜찮습니다.네트워크 내부에서 호스트를 실행하고 DNS에서gitserver가 호스트를 가리키도록 설정하면 다음 명령을 사용할 수 있습니다.
# John
$ cd myproject
$ git init
$ git add .
$ git commit -m 'initial commit'
$ git remote add origin git@gitserver:/opt/git/project.git
$ git push origin master
이렇게 하면 다른 사람의 클론과 푸시도 마찬가지로 간단해집니다.
$ git clone git@gitserver:/opt/git/project.git
$ vim README
$ git commit -am 'fix for the README file'
$ git push origin master
이 방법으로 소수의 개발자들을 위해 읽기 전용Git 서비스를 신속하게 설치할 수 있다.
추가 예방 조치로git 자체의git-shell 도구로git 사용자의 활동 범위를 제한할 수 있습니다.git 사용자가 로그인한 셸로 설정하면 일반적인 bash나 csh 같은 셸 프로그램을 사용할 수 없습니다./etc/passwd 파일을 편집하려면 다음과 같이 하십시오.
$ sudo vim /etc/passwd
파일 끝에서 다음과 같은 행을 찾을 수 있습니다.
git:x:1000:1000::/home/git:/bin/sh
bin/sh를/usr/bin/git-shell로 바꾸거나 which git-shell로 실제 설치 경로를 보십시오.행이 수정된 모양은 다음과 같습니다.
git:x:1000:1000::/home/git:/usr/bin/git-shell
현재git 사용자는 SSH 연결으로만 Git 창고를 전송하고 가져올 수 있으며 호스트 셸을 직접 사용할 수 없습니다.일반 SSH 로그인을 시도하면 다음과 같은 거부 메시지가 표시됩니다.
$ ssh git@gitserver
fatal: What do you think I am? A shell?
Connection to gitserver closed.
여기에 제공된 방법은 그룹 내의 모든 구성원이 프로젝트에 대해 읽기와 쓰기 권한을 가진다. 즉, 각 지점마다 push 코드를 사용할 수 있으며 더욱 세밀한 권한 제어가 필요하다면 Gitosis나 Gitolite를 사용하도록 한다.
2. Gitweb 구축
gitweb를 설치하면 사이트를 통해 저희 프로젝트를 방문할 수 있습니다.마치... 와 같다http://git.kernel.org똑같이 떴어요.
우선 기트웹을 설치해야 하며, 아파치가 설치되지 않으면 기트웹을 직접 설치해도 아파치2를 설치할 수 있다.
$ sudo apt-get install gitweb apache2
설치가 끝난 후, 우리는/etc/gitweb을 위한 설정 파일을 수정하기만 하면 됩니다.conf 파일의 $projectroot는 프로젝트 파일을 놓는 디렉터리로 변경되었습니다.
$ vim /etc/gitweb.conf
# path to git projects (<project>.git)
$projectroot = "/opt/git";
이로써 gitweb을 사용할 수 있습니다. http://[git server IP]/gitweb을 통해 접근할 수 있습니다.
3. Push 이후 메일 알림 보내기
그룹 구성원의push 코드가 서버에 도착하면 자동으로 그룹 내의 모든 인원에게 메일을 보냅니다. 이번push의 구체적인 내용은 무엇입니까?구성 방법:
일반적으로Git를 설치할 때 메일을 보내는 스크립트/usr/share/git-core/contrib/hooks/post-receive-email이 이미 존재합니다. 우선 소유자와 실행 권한을 수정하고sendmail을 설치해야 합니다.
$ sudo chown git:git post-receive-email
$ sudo chmod 755 post-receive-email
$ sudo apt-get install sendmail
그리고 프로젝트 디렉터리로 전환된hooks에post-receive 소프트 링크 지향/usr/share/git-core/contrib/hooks/post-receive-email을 추가합니다.
$ cd /opt/git/project.git/hooks
$ ln -s /usr/share/git-core/contrib/hooks/post-receive-email post-receive
마지막으로 프로젝트 디렉터리에 있는 config 파일을 수정하면 됩니다.mailinglist는 메일 리스트이고, envelopesender는 발송자의 메일박스입니다.
$ vim /opt/git/project.git/config
[core]
repositoryformatversion = 0
filemode = true
bare = true
[hooks]
mailinglist = "[email protected], [email protected]" #
envelopesender = [email protected] #
emailprefix = "[Project commit] " #
showrev = "git show -C %s; echo" # ,
메일을 더욱 명확하게 보이기 위해서는 프로젝트 디렉터리에 있는 description 파일을 수정해야 합니다. description 파일에서 기본 첫 번째 줄은 프로젝트 이름이기 때문에 첫 번째 줄에 프로젝트의 이름을 기입해야 합니다. 이것은 메일에 표시됩니다.
$ vim /opt/git/project.git/description
Project_A
우리가 받은 메일의 제목은 다음과 같다.
[Project commit] Project_A branch master updated. 8811b83e1afb373cbe30d5bc25683d74ace2917c
때때로 우리는 시작과 발송이 상당히 느리고 심지어 2, 3분을 기다려야 한다는 것을 발견할 수 있다. 전혀 참을 수 없다. 마지막으로 끊임없는 테스트를 통해 이 문제를 해결했다. 주로/etc/hosts를 수정해야 한다.예를 들어 내 발송자의 영역은 example입니다.com, hostname은 desktop입니다. 그러면 이렇게 수정해야 합니다.
127.0.0.1 example.com localhost desktop
수정 후 sendmail 서비스를 다시 시작하려면:
service sendmail restart
그리고 메일로 보낸 게 솔솔!
이로써 우리Git 서버가 완성되었습니다. 당신의 동료들과 함께 즐거운 코딩을 하세요!
4. 참조 링크
http://git-scm.com/book/zh/%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84-Git-%E6%9E%B6%E8%AE%BE%E6%9C%8D%E5%8A%A1%E5%99%A8
http://josephj.com/entry.php?id=346
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.