Ubuntu Linux에 Git 저장소 만들기

Ubuntu Linux에 Git 저장소 만들기

How to create Git repository in Ubuntu Linux

Github나 GitLab 또는 Bitbucket 사이트에 내가 개발한 소스 코드를 형상 관리해도 됩니다. 때로는 단독으로 형상관리할 때가 생기는데요, 우리는 Ubuntu Linux에서 어떻게 Git 저장소를 만드는지 알아보고자 합니다.

패키지 설치하기

먼저 Git 저장소로 Ubuntu Linux를 사용하고자 할 때 몇 가지 먼저 설치할 게 있습니다.

  • git

  • openssh-server

Bash 터미널에서 아래 명령어를 이용해서 설치하세요.

# in {my-user-id} user account

$ sudo apt install -y git
$ sudo apt install -y openssh-server
$ sudo ssh-keygen -A
$ sudo service ssh start

환경 변수 선언하기

Ubuntu Linux에 내가 사용할 계정과 Git 저장소가 사용할 계정이 필요합니다. Git 저장소 전용 계정 없이 내 계정으로 설정해도 되지만 관심 분리(separation of concerns)를 위해 별도로 나누는 게 좋습니다.

Bash 터미널에서 아래 처럼 환경 변수를 선언하세요. {my-user-id} 에는 본인의 Ubuntu 계정을 넣어 주면 됩니다. Git 저장소 전용 계정 이름은 git 으로 사용하겠습니다. 아래 명령어는 {my-user-id}개인 계정에서 실행하세요.

# in {my-user-id} user account

$ MY_HOME=/home/{my-user-id}
$ MY_USER={my-user-id}

$ GIT_HOME=/home/git
$ GIT_USER=git

Git 저장소 사용자 추가하기

Git 저장소 계정으로 git 을 사용하고자 환경 변수를 잡았지만 Ubuntu Linux에 실제 계정은 아직 생성하지 않았습니다. 이제 git 계정을 만들고 해당 계정으로 전환하겠습니다.

# in {my-user-id} user account

$ sudo useradd -ru -s /bin/bash -md $GIT_HOME $GIT_USER
$ sudo su - $GIT_USER

Git 저장소 초기 환경 설정하기

만든 git 계정에서 저장소 인증처리에 사용될 파일과 데모용 프로젝트 저장소 demo-project 를 만들겠습니다. 아래 명령어를 git 계정에서 실행한 다음 빠져나와 다시 {my-user-id} 계정으로 전환하세요.

# in git user account

$ chmod 700 $GIT_HOME/.ssh
$ touch $GIT_HOME/.ssh/authorized_keys
$ chmod 600 $GIT_HOME/.ssh/authorized_keys
$ git init --bare $GIT_HOME/demo-project.git
$ exit

Git 저장소용 계정 크레덴셜 생성하기

본인 {my-user-id} 계정에서 사용한 크레덴셜을 만듭니다. ssh-keygen 명령을 사용하면 쉽게 만들 수 있습니다.

# in {my-user-id} user account

$ cd $MY_HOME
$ ssh-keygen -t rsa
# 입력 프롬프트가 나오면 <ENTER-KEY> x 3회

Git 저장소 사용자에게 SSH 공개키 복사해주기

$MY_HOME/.ssh/id_rsa.pub 공개키를 $GIT_HOME/.ssh/authorized_keys 에 복사합니다. 이 과정은 내 소스 코드가 들어 있는 Git 계정이 내 암호체계에 맞게 암호화해서 보내거나 받을 수 있도록 공개키를 주는 과정입니다.

# in {my-user-id} user account

$ cat ~/.ssh/id_rsa.pub 
# public key 내용을 클립보드에 복사
$ sudo su - git

# in git user account
$ vi ~/.ssh/authorized_keys
# 클립보드에 복사한 public key을 붙여넣기

$ exit

이것으로 Ubuntu Linux에 Git 저장소를 만드는 과정은 끝났습니다. 데모용으로 만든 demo-projecg 저장소를 직접 사용해보겠습니다.

내 계정에 Git 저장소 클론받기

본인 계정 {my-user-id} 에서 다음 명령어를 이용해 demo-project 저장소를 클론합니다.

# in {my-user-id} user account

$ git clone git@localhost:demo-project.git

Cloning into 'demo'...
...
warning: You appear to have cloned an empty repository.

클론한 저장소 사용하기

클론받은 프로젝트 안에서 파일도 만들어보고 commit한 다음 push까지 해보세요.

# in {my-user-id} user account

$ cd demo-project
$ touch README.md
$ echo "# demo-project" > README.md
$ cat README.md
$ git status
$ git add .
$ git commit -m "Added README"
$ git push

마무리

인터넷 접속 없이 본인 로컬 개발환경에서 Git 저장소를 만들어 사용해보고 싶은 분께는 도움이 되었으면 합니다.