본문 바로가기
ETC

Git 원격 저장소 만들기

by softserve 2022. 7. 19.
반응형

Git은 가장 널리 알려진 버전 관리 시스템입니다.

Github와 혼동하는 분들이 많은데 Github는 원격 저장소를 대여해주는 웹 서비스라고 할 수 있습니다. 즉 add - commit 과 같은 명령을 수행하는 것이 Git 이고 push를 했을때 비로소 Github에 있는 저장소를 사용하게 되는 것이지요.

오늘은 Github 대신에 서버를 원격 저장소로 설정한 뒤에 Git으로 버전 관리를 해보도록 하겠습니다.

테스트를 위해서는 접속가능한 서버가 구비되어 있어야 합니다.

 

1. 서버에 저장소를 생성합니다.

 

먼저 ssh 프로토콜을 이용해 서버에 접속합니다.

$ ssh user@123.123.123.123 -p 22

계정@서버의 IP주소 -p 포트번호 입니다.

권한이 없다고 나오면 서버 관리자에게 권한을 요청해야 합니다.

그 다음 마찬가지로 폴더를 하나 만들고 git init을 해줍니다.

$ mkdir git2
$ cd git2
$ git init --bare .git

--bare 는 bare repository로 만들겠다는 뜻입니다. 그리고 .git은 git 설정이 저장될 디렉토리의 이름입니다.

bare repository는 텅 빈 repository 라는 뜻입니다. bare repository에서는 commit을 할 수 없고, working tree를 가지고 있지 않기 때문에 변경 이력이 저장되지 않습니다. bare 로 만드는 이유는 이곳에서 직접 작업을 하지 않고 로컬에서 여러 사용자들이 작업한 내역을 반영하는 공유 저장소이기 때문입니다.

bare repository가 아닐 경우 commit을 했을 때 다음과 같은 에러 메시지가 출력됩니다.

 

2. 로컬에서 프로젝트를 생성합니다.

그냥 폴더를 하나 만든 뒤 해당 폴더로 이동해서 git init을 해주면 됩니다.

$ mkdir git1
$ cd git1
$ git init

 

다음은 remote origin을 추가하는 방법입니다.

origin은 원격 저장소의 이름입니다. 임의로 지정할 수 있지만 git의 세계에서는 원격 저장소를 origin이라고 부릅니다. 그래서 clone을 하게 되면 자동으로 origin이라는 이름이 생성되기도 합니다.

다음에는 서버의 주소를 입력합니다.

user@123.123.123.123:git2 라고만 해도 되지만 프로토콜을 명시해주기 위해서 아래처럼 했습니다.

$ git remote add origin ssh://user@123.123.123.123:22/~/git2

이제 제대로 추가가 되었는지 확인합니다.

$ git remote

추가된 원격 저장소들의 목록을 확인할 수 있습니다. 지금은 origin만 보이겠죠?

$ git remote show origin

origin의 상세 정보를 확인할 수 있습니다.

 

3. 원격 저장소를 활용해 봅니다.

 

작업을 수행합니다. 일단 README.md 파일을 생성해보겠습니다.

$ touch README.md
$ git add --all
$ git commit -m "initial commit"

여기까지는 로컬에서 이루어집니다. 이제 원격저장소로 push를 합니다.

$ git push origin master

서버에 접속해서 git log로 push가 제대로 되었는지 확인해봅니다.

$ git log

commit의 해쉬값과, 저자, 날짜, commit 메시지가 출력됩니다.

다른 사람이 원격 저장소에 반영한 내역을 로컬로 가지고 오려면 pull을 하면 됩니다.

$ git pull origin master

 

4. 서버에 있는 Git 폴더로부터 인텔리제이 프로젝트를 생성합니다.

메뉴의 VCS - Get from Version Control 을 선택합니다.

URL 에 서버의 주소를 입력해주고 Directory에 원하는 프로젝트 이름을 적어준 뒤 clone을 하면 프로젝트가 만들어집니다.

반응형

댓글