Git 서버 설치
0. 일반 명령
name=xxx;sudo git init --bare /home/git/git/$name.git;sudo chown -R git:git /home/git/git/$name.git
name=xxx;sudo rm -rf /home/git/git/$name.git
sudo ls /home/git/git/
name=xxx;git clone [email protected]:~/git/$name.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 파일 끝부분으로 authorized_keys 설정은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는 이를 원격 창고로 추가하여 하나의 지점을 전송하여 첫 번째 버전의 프로젝트 파일을 창고에 업로드할 수 있다.주의해야 할 것은 새 항목을 추가할 때마다 셸을 통해 호스트에 로그인하고 누드 창고 디렉터리를 만들어야 한다는 것이다.우리는gitserver를git 사용자와 프로젝트 창고가 있는 호스트 이름으로 삼아도 무방하다.네트워크 내부에서 호스트를 실행하고 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로 바꾸거나 whichgit-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마찬가지로 Gitweb을 먼저 설치해야 한다는 것을 보여 줍니다. 아파치를 설치하지 않으면 Gitweb를 직접 설치하고 아파치2를 설치합니다.
$ sudo apt-get install gitweb apache2
설치가 끝난 후, 우리는 프로필을 수정해서,
/etc/gitweb.conf
파일 중의 $projectroot
을 공사 파일을 넣는 디렉터리로 수정하기만 하면 된다.$ vim /etc/gitweb.conf
# path to git projects (.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
을 추가합니다.$ cd /opt/git/project.git/hooks
$ ln -s /usr/share/git-core/contrib/hooks/post-receive-email post-receive
마지막으로 프로젝트 디렉터리의config 파일을 수정하면 됩니다.
/usr/share/git-core/contrib/hooks/ post-receive-email
메일 리스트, mailinglist
보낸 사람의 메일박스,$ 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" # ,
메일이 더 잘 보이기 위해서는 프로젝트 디렉터리에 있는
envelopesender
파일을 수정해야 합니다. description
파일에서 기본 첫 번째 줄은 프로젝트 이름이기 때문에 첫 번째 줄에 이 프로젝트의 이름을 기입해야 합니다. 이것은 메일에 표시됩니다.$ vim /opt/git/project.git/description
Project_A
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.