윈도우에서 GIT 원격 서버 구축하기


윈도우 환경에 Git 원격 서버를 구축해보겠다.
Git은 무료 Git 서비스를 해주는 곳에 개인적인 프로젝트로만 사용해봤으며 업무적으로는 Mercurial를 사용하고 있다.

구축 과정을 기록한 계기는 이렇다.
친구에게 Git 사용을 추천했는데 윈도우 서버뿐이라고 설치 과정을 물어왔다.
필자도 Git 서버를 윈도우에 구축한 경험이 없고 윈도우 서버도 없어서 윈도우7에 설치 과정을 기록한다.

설치 프로그램

Git for Windows 설치

  1. Git 공식 사이트에서 윈도우 버전을 다운로드
  2. 설치
    • 윈도우 버전에 맞게 설치 옵션이 자동 설정되어 있으니 별다른 설정없이 순서대로 설치한다.
참고: 윈도우 버전용 별도의 프로젝트(msysgit)도 있다.

Bonobo Git Server 설치 및 설정

  1. IIS 설치
  2. Bonobo Git Server 설치
    • 다운로드 받고 압축 해제
    • 압축 해제한 파일을 웹 서비스 디렉토리에 복사
      • 기본 디렉토리: C:\inetpub\wwwroot
      • 기본 디렉토리 및에 git 이란 디렉토리를 생성 후 복사(디렉토리 명은 개인 취향대로 생성)
        복사 위치: C:\inetpub\wwwroot\git
    • 디렉토리 권한 설정
      • IIS_IUSRS 사용자에게 저장소 디렉토리에 대한 수정/쓰기 권한을 부여한다.
      • 저장소 디렉토리: C:\inetpub\wwwroot\git\App_Data\Repositories
        "편집" 클릭 후 IIS_IUSRS 사용자에게 수정/쓰기 허용을 체크 후 저장
  3. IIS 설정
    • Bonobo 디렉토리를 은용 프로그램으로 변환한다.
    • Bonobo는 .NET 4.5 이상 버전에서 실행된다.
      2단계에서 복사한 디렉토리를 마우스 우클릭 후 "은용 프로그램으로 변환"을 클릭
      "은용 프로그램 풀" 선택
      "은용 프로그램 풀"에서 .NET 4.0 버전을 선택
      (참고로 .NET 4.5를 설치해도 여기에선 4.0만 확인 가능)
  4. Bonobo Git Server 접속
    • 이제 모든 준비가 끝났다. 접속되는지 확인해보자.
    • http://127.0.0.1/git 접속하여 아래와 같은 이미지가 나오면 설치 완료다.
    • 기본 관리자 계정: admin / admin
      "Bonobo Git Server" 시작 페이지
  5. Web.config 설정 파일 수정
    • 필요시 수정하시고 아래 기본 값을 상향 조정하면 된다.
    • 변경이 필요한 시점은 대용량 파일 push 도중 오류가 발생하면 참고하자.
      The remote end hung up unexpectedly
      error: RPC failed; result=56, HTTP code = 0
      error: RPC Failed; result=22, HTTP code = 404
      error: RPC failed; result=22 HTTP cod=413
      
    • 파일 위치: C:\inetpub\wwwroot\git\Web.config
      <!-- 최대 컨텐츠 용량 - KB 단위 -->
      <httpruntime maxrequestlength="524288000">
      
      <!-- 최대 업/다운로드 용량 - Bytes 단위 -->
      <requestlimits maxallowedcontentlength="1048576000">
      

Git 원격 저장소 생성

  1. 저장소 디렉토리 확인
    저장소 디렉토리는 변경도 가능하나 위에서 "수정/쓰기" 권한을 부여한 디렉토리로 설정되어 있는지 확인하자.
    "Repository Directory" 확인 / 한국어는 아직 지원 안함
  2. 저장소 생성
    "Create new repository" 클릭
    정보 입력 후 "Create" 클릭
    저장소가 생성된 화면
    "Name"을 클릭하면 저장소 상세 정보를 볼수 있음
    (생성시 정보는 우측의 "Edit" 아이콘을 누르면 수정 가능)
    저장소 상세 정보
    저장소 디렉토리에 "test" 라는 디렉토리가 생성됨

Git 로컬 저장소 생성

  1. 원격 저장소 복제(Clone)

    SourceTree 왼쪽 상단의 "Clon / New"클릭하면 나오는 팝업창이다.
    "Clon Repository" 탭에 위에서 생성한 원격 저장소 주소와 로컬 저장소 위치를 입력 후 "Clone" 클릭한다.
    Source Path / URL : http://admin@127.0.0.1/git/test.git
    Destination Path : D:\resource\test

    복제가 완료되면 왼쪽에 "test"라는 저장소가 표시된다.
  2. 파일 생성 후 첫 커밋(commit) 하기

    위에서 지정한 로컬 저장소에 파일을 생성한다.
    (위 예시 주소: "D:\resource\test")

    SourceTree로 다시 돌아오면 생성된 파일이 보인다.
    생성한 파일 위에 "Unstaged files" 체크 박스를 클릭한다.

    생성한 파일이 "Staged files"로 이동되었다.
    제일 하단에 "Commit message"라고 적힌 Input 박스를 클릭한다.

    Input 박스가 커지면 간단한 메시지를 작성 후 "Commit" 클릭한다.

    저장소에 첫번째 커밋(Commit)을 한 역사적인 순간이다.

  3. 원격 저장소로 푸시(push) 하기

    SourceTree에서 "Push" 버튼을 클릭하면 위와 같은 팝업창이 뜬다.
    "master" 브랜치(branch)를 선택 후 "OK"를 클릭한다.
    원격 저장소에 첫번째 푸시(push)한 역사적인 순간이다.

  4. 원격 저장소에서 확인하기
    "http://127.0.0.1/git" 접속하면 위에서 푸시(push)한 내용을 확인 할 수 있다.

마무리 하며

설치부터 원격 저장소에 푸시(push)까지 읽어줘서 고맙다.
윈도우에 Git 원격 서버 구축은 어렵지 않았지만 앞으로가 문제다.
외부에서 쓸 목적이라면 보안 설정 및 다른 사용자의 권한 설정을 부여해야 된다.

그리고 "Bonobo Git Server" 는 추가 편의 기능은 없다.
GitLab 오픈 소스를 사용해보고 싶은 욕구가 곧 들지 않을까 생각된다.
(GitLab은 윈도우를 지원하지 않는다.)
태생이 리눅스인 만큼 Git 원격 서버는 리눅스에 구축하는게 개인적인 건강에 좋을거 같다.
윈도우 서버에 구축을 해야된다면 개인적으로 Mercurial를 추천한다.
Mercurial은 윈도우 친화적이다.

참조 사이트