본문 바로가기
Git

1. Git 서버 구축

by 실짱 2023. 10. 20.

팀 자체 서버를 운영하는 곳에서 GIT 을 도입하고자할때 참고하시면 됩니다.

 

서버 셋업의 첫 단계로 Git 서버를 구축해보려고 한다.

(뒤에 말하겠지만, Gerrit 을 셋업하게되면 이 단계는 불필요하다)

 

Git 이 무엇이고 왜 필요하고 … 등등은 생략하자. 이미 너무 포스트가 많다.

 

모든것은 공식 사이트를 참조하는게 제일 좋다. (이번에 하면서 깨달은거..)

4.2 Git 서버 - 서버에 Git 설치하기

 

위 사이트를 토대로 시작했다.

(셋업한 서버의 OS는 Ubuntu 22.04 버전이다. 앞으로 모든 설명은 이 OS 베이스로 한다.)

 

1. 계정 생성

꼭 필요한 부분은 아니지만, unix 는 사용자별로 별도의 설정을 해줄수 있기 때문에 서버 역할을 하는 user 를 추가하여 관리하는것이 여러모로 편하다.

 

1> Git 서버를 위한 계정 생성

   useradd -m git -s /bin/bash  (-m : 홈 폴더 생성 옵션, -s : 기본 쉘 지정 옵션)

 

2>  이 git user 는 향후 sudo 권한이 필요하다. 

   2-1> 권한 부여를 위해 password 설정

  • su
  • passwd git 

  2-2> sudo 사용을 위해 sudoers 에 추가 (error 메시지 : git is not in the sudoers file)

  • su (root 전환)
  • vi /etc/sudoers
  • git ALL=(ALL:ALL) ALL 추가

 

2. SSH 설정

git 서버로서 역할을 하기 위해서는 멤버들이 접근 권한 관리가 필요하다.

이를 위해서 git 은 authorized 파일로 기능을 제공하고 있다.

 1>  git 계정 로그인

   su git

 2> .ssh + authorized

 3> 팀원 ssh key 저장

 

3. 저장소 설정

git 서버는 결국 코드를 저장하는 저장소다.

저장소 설정을 해서 팀이 작업할 수 있는 공간을 만들자.

 

  git remote 저장소 설정

  1> 폴더 생성 

  2-1>  최초로 원격 저장소 생성할 경우

git init --bare 옵션으로 저장소 생성한 후 팀에서 사용하면 된다. bare 저장소는 코드 작업을 할수 없는 저장소다. remote 저장소로 활용하기 위한 저장소라고 이해하면 된다. (share 옵션은 굳이 안줘도된다)

  2-2> 기존 저장소가 있는 경우

git clone 명령어 뒤에 copy 할 기존 저장소의 protocol 을 명시해서 받아온다. 역시 remote 저장소의 역할을 해야하기 때문에 --bare 옵션을 준다. 첫 clone 시에는 fingerprint 확인을 하는데 yes 를 적어주면된다.

bare 저장소에 대한  자세한 설명은 아래 링크가 제일 잘되어 있는거 같다.

What is a bare repository in Git?

 


Next >   [Git] - 2. Git client

 

 

'Git' 카테고리의 다른 글

2. Git client  (0) 2023.10.20
3. Trouble shooting (GIT)  (0) 2023.10.20