git 서버 구축, 자체 서버에 개인 창고 구축
아래의 경우 서버 하나, 클라이언트 두 개가 있습니다.
:Debian7.5 (192.168.10.14) :git (git-shell) :sample.git :git@192.168.10.14:/home/git/sample.git :Mac mymac.pub(mac git ) win7 mywin.pub(win7 git )
간단한 단계:
1. git 설치
apt-get을 통해git를 직접 설치합니다.이 방식을 사용하는 것은 비교적 간단하다. 물론git 원본 코드를 사용하여 최신 버전을 스스로 컴파일할 수도 있다.
# apt-get update
# apt-get install git -y
1.1 git 사용자 만들기
git
계정을 만들고 로그인하여 사용자 디렉터리를 /home/git
로 직접 지정합니다# useradd git -d /home/git -m -s /bin/bash
# su git
사용자 추가useradd-d: 사용자 디렉터리 지정-m: 디렉터리가 존재하지 않으면 -s: 사용자가 사용할 명령을 지정할 수 있습니다
2. Sample 라이브러리 만들기
라이브러리를 만드는 것은 매우 간단합니다.
--bare
파라미터를 사용하십시오.코드 창고 서버로서 위에서 물건을 수정하지 않기 때문에 관련 제출 날짜만 있으면 된다.$ cd ~
$ git init --bare sample.git
3. SSH 키 설정
클라이언트 키를 수집하여 서버에 복사합니다.클라이언트의 현재 계정
RSA
또는 DSA
의 디지털 서명 파일id_rsa.pub
은 .ssh
사용자 디렉터리에 있습니다.통상적으로 윈도우즈는%userprofile%\.ssh
디렉터리에, 맥은 ~/.ssh
디렉터리에 있다.mac에서 다음 명령을 사용하여 붙여넣기판을 복사하거나 ssh로 업로드할 수 있습니다
$ pbcopy < ~/.ssh/id_rsa.pub
win7에서 Git GUI 인터페이스를 열 수 있습니다.
-> show SSH Key
메뉴가 있습니다. 만약 SSH를 만들 수 있는 서명 파일을 만들지 않았다면 서버에 복사해서 저장할 수 있습니다.타사의 SSHKey 서비스를 사용하는 경우 실제 위치에 차이가 있을 수 있습니다.로컬 사용자의 서명 파일을 생성하고 클라이언트의 키를 서버에 가져옵니다.여러 개가 있으면 디렉터리에 놓을 수 있어 가져오기 편합니다.팀원들이 많으면 이런 방식은 어울리지 않을 수도 있어요.
클라이언트의 키 파일
mymac.pub
과 mywin.pub
을 가져옵니다.$ ssh-keygen -t rsa -b 4096 $ cat mymac.pub >> ~/.ssh/authorized_keys $ cat mywin.pub >> ~/.ssh/authorized_keys
3.1 클라이언트가 샘플 라이브러리를 가져와 서버에 파일을 업로드합니다
ac 클라이언트에서 가져옵니다.
$ git clone git@192.168.10.14:/home/git/sample.git Cloning into 'sample'... warning: You appear to have cloned an empty repository. Checking connectivity... done.
확인 성공, 파일 추가 및 서버에 제출
$ cd sample
$ cat >> readme.md first file. ^c $ git add . $ git commit -m "first commit" $ git push
3.2 서버에서 상태 보기
$ git log
commit 8b070256af351b43a74753f0b05969fcfe9c7310
Author: moguf <moguf_notify@163.com> Date: Sun Apr 3 20:49:17 2016 +0800 first commit
3.3 Windows 클라이언트에서 가져오기
윈도우즈에서 직접 사용할 수 있습니다
git
또는 TortoiseGit
.git@192.168.10.14:/home/git/sample.git
새 파일을 만들어 서버에 제출합니다.서버에서
git log
를 통해 두 번째로 제출한 내용을 볼 수 있다.mac 클라이언트git pull
에서 방금 새로 추가된 파일을 볼 수 있습니다.이렇게 하면 Git 서버 웨어하우스 기능이 기본적으로 완성됩니다.
4. 안전 문제
Git 계정은 보안을 위해 사용만 가능합니다
git-shell
.패스워드 파일에서git 사용자를 찾아 /bin/bash
직접 /usr/bin/git-shell
로그인 루트 계정으로 수정하고git의 사용자 권한을 수정합니다.$ su
# vim /etc/passwd
이렇게git 사용자는git-shell 명령만 사용할 수 있고 로그인할 수 없습니다.
sugit 명령을 사용하면 다음 알림이 나타나고git 사용자는 셸에 로그인할 수 없습니다. 그러면 OK입니다.
# su git
fatal: Interactive git shell is not enabled. hint: ~/git-shell-commands should exist and have read and execute access.
5. 데이터 웨어하우스 마이그레이션
위의 상황은 빈 창고입니다. 이미 사용하고 있는 창고가 있다면 새 창고로 옮기고 싶습니다.
mac에서 전환
리모트 이름부터 볼게요.
$ git remote
origin
보통 오리진을 볼 수 있는데 이게 원래 창고 이름이에요.
git remote set_url
명령을 사용하여 주소를 변경합니다. 새 주소는 [email protected]:/home/git/sample.git
$ git pull
$ git remote set-url origin git@192.168.10.14:/home/git/sample.git $ git push
"Tortoise Git"이 있으면현재 디렉터리를 우클릭하고 Settings에 들어가서 원격 주소를 교체합니다.장착하지 않고 Git 자체 장착으로 위의 명령으로 교체합니다.
힌트: 이런 방식은 빈 창고에서 이전하는 것이 비교적 편리하고 새 주소에 데이터가 있으면 비교적 번거롭다.
6. 기타 관련: 소스에서 Git 설치
시스템에서 제공하는 패키지 비교 문서는 물론 최신 버전을 설치해야만 해결할 수 있는 것을 발견할 수 있다.어차피 여러 가지가 있을 거예요.
6.1 종속 패키지 설치
$ sudo apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev asciidoc xmlto docbook2x
6.2 다운로드 컴파일
일반적인 컴파일 설치 방법,make 및make install.
$ wget https://github.com/git/git/archive/v2.9.1.tar.gz
$ tar fvxz v2.9.1.tar.gz $ cd git-2.9.1 $ make prefix=/usr all doc info $ su # make prefix=/usr install install-doc install-html install-info
설치 완료 후 git 버전 확인
# git --version
git version 2.9.1
위의 방법은 전역적으로 설치됩니다. 더 자세한 제어 설치가 필요하면git가 제공하는 설치 도움말 원본 문서를 참고할 수 있습니다.
알림: 최신 버전은github에서 가져옵니다.https://github.com/git/git/releases
6.3 디스크 폭발!
위의 의존 가방 사이즈가 좀 큽니다.가상 머신은 원래 테스트에 사용되기 때문에 분배된 디스크 공간이 비교적 작다.디스크 공간 부족 문제가 발생했습니다. 100% 점용 -_-!!몇몇 컵은 의외의 의외이다.
df -hl
명령을 사용하여 나머지 공간을 볼 수 있습니다.root@sunroom:/home/abc# df -hl Filesystem Size Used Avail Use% Mounted on rootfs 2.5G 2.5G 0 100% / udev 10M 0 10M 0% /dev tmpfs 76M 224K 76M 1% /run /dev/disk/by-uuid/371b6c92-bdc9-417d-b37f-fae99e6ecce1 2.5G 2.5G 0 100% / tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 213M 0 213M 0% /run/shm /dev/sda6 5.2G 139M 4.8G 3% /home tmpfs 213M 0 213M 0% /tmp
캐시 파일 삭제 단순화
이전 버전의 소프트웨어 캐시 정리
# apt-get autoclean
모든 소프트웨어 캐시 정리:
# apt-get clean
7. 관련 질문
알림: bash:vim:command not found가 나타날 수 있습니다.vim를 설치하거나 vi 명령을 사용할 수 있습니다.apt-get install vim -y
더 많은 git에 관한 문제는 홈페이지에서 직접 찾을 수 있습니다.중국어 버전 도움말이 있습니다. 내용이 비교적 상세합니다.
git 홈페이지:git-scm.com
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.