git 서버 구축, 자체 서버에 개인 창고 구축

15417 단어
간단한 개인 Git 버전 제어 서버를 만들려면 먼저 서버가 있어야 한다.이런 방식은 사람이 비교적 적은 상황에 적합하기 때문에 관리가 복잡하지 않고 계정을 몇 개 늘리면 된다.
아래의 경우 서버 하나, 클라이언트 두 개가 있습니다.
Debian7.5 (192.168.10.14)   git (git-shell)   sample.git   git@192.168.10.14:/home/git/sample.git Mac mymac.pubmac git win7 mywin.pubwin7 git

간단한 단계:
  • 1,git 서비스를 설치하고git 계정을 만듭니다
  • 2, 샘플 창고 만들기
  • 3, 클라이언트 키 가져오기
  • 4, 클라이언트 연결 및 제출 내용
  • 5, Git 권한 수정, git-shell 명령만 사용--OK--
  • 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.pubmywin.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
  • 최신 코드 가져오기
  • 새 주소로 전환
  • 현재 라이브러리 내용 제출
  • win7 아래로 전환
    "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

    좋은 웹페이지 즐겨찾기