본문 바로가기
git

나홀로 프로젝트에 버전관리 - git와 gitlab

by ethanjoh 2014. 7. 21.

혼자서 개발을 해도 소스관리, 버전관리는 필요하다.

지금까지는 클라우드 서비스를 이용해서 동기화 등을 시켜왔는데, 아무래도 버전관리 필요성이 느껴져서 생각만 하고 있던 중 우연히 오픈튜토리얼의 gitlab 인강을 보고 도전해 보았다.


우선은 git에 대해서 알아야 한다.


git 강의 먼저 듣기


http://opentutorials.org/course/303


git 부분을 얼추 이해한 후에 그 유명한 github의 경우에는 오픈소스가 아니면 유료라고 하니, 사용자 10명까지는 오픈소스가 아니더라도 무료로 사용할 수 있는 gitlab을 이용하기로 했다.


http://opentutorials.org/course/785/4933


---------------------------------


위의 강의를 모두 들은 뒤에라도 헷갈리기 마련이다.

하물며 대충 몇 개만 들은 뒤 해보려니 더더욱 헷갈려서 삽질만 여러 번 했다.

앞의 인강을 모두 들은 뒤 아래의 내용을 보면 이해가 된다.



git 따라 해보기



1. 기본적인 순서는 제일 먼저 Windows용이든 맥용이든 git 을 설치한다.

그리고 console 상태에서 작업하는 것이 좀 불편하긴 해도 처음엔 나을 듯 싶다.


http://msysgit.github.io/ -> Windows용 git





2. git bash 콘솔을 열어 ssh 키를 생성한다.


ssh-keygen


id_rsa.pub 라고 되어 있는 공개키 파일을 열어 해당 내용을 복사 해둔다.

윈용 사용자라면 c:\사용자\[사용자명]\.ssh 폴더에 있다. (폴더에 숨김파일 속성이 있다면 풀 것)



3. gitlab.com 에 가서 가입하고 프로젝트를 하나 생성한다.

그리고 내 프로필에 가서 ssh keys에서 앞서 복사 해둔 ssh 키를 입력한다.

(이렇게 하는 이유는 별도의 로그인 과정 등이 없이 보안을 이용해 로컬과 리모트를 바로 연결해 주기 위함이다.)






4. 그리고 사무실이든 집이든 하나를 정해 먼저 remote repository(저장소)에 소스 파일들을 올려준다.


이미 작업 중이던 프로젝트가 있다면 해당 폴더에 가서 아래의 명령어들을 순서대로 입력한다.


git config --global user.name "사용자명"
git config --global user.email "이메일 주소"

git init touch README git add README git commit -m 'first commit' git remote add origin [리모트 리포지토리 주소] git push -u origin master


git init 가 사실상 초기화하는 명령어이고 README 파일의 경우에는 리모트에 잘 올라가는지 테스트용이라고 생각하면 된다.


remote repository 주소는 gitlab에서 프로젝트를 생성했으면 볼 수 있다.

ssh 로 된 주소를 넣으면 된다.


git@gitlab.com:[사용자명]/[프로젝트명].git


의 형식으로 주소가 나와있다.



위의 과정으로 리모트에 연결이 잘 되는지 확인이 됐으면 이제 본격적으로 내 컴퓨터에 있는 로컬 파일들을 add 하고 commit 한 후에 push로 리모트에 올려주면 된다.



다른 위치에서 git 추가하기




지금까지 만약 사무실 컴퓨터에서 작업을 했다면 집 컴퓨터에서는 어떻게 해줄까?

역시 git를 설치한 후에


1. 2. ssh키를 새로 받아 리모트에 등록해 준다.


2. 일단 서버에 있는 리모트 파일들을 모두 복사해서 컴퓨터로 가져온다.


git clone [리모트 주소]


3. 그리고 리모트를 추가해 준다.


git remote add origin [리모트 주소]


git remote 라고 콘솔 상에서 명령어를 쳐봤을 때 origin이라고 나오면 리모트가 추가된거다.

일종의 별명으로 내 로컬의 디렉토리를 master, 그리고 서버의 디렉토리는 origin 이라는 별명을 사용하게 된다.


4. 로컬에서 작업한 내용을 리모트에 보내기 전에 git pull 을 해서 먼저 리모트에 있는 내용을 가져오는 습관을 먼저 기르자.




에러에 대응하는 자세


그런데 문제는 git clone이나 git pull을 할 때 종종 발생한다.

early EOF 니 The remote end hung up unexpectedly 뭐니 하면서 잘 다운을 받아오다가 중간에 뚝 끊겨버린다.

십수 번을 반복해 보고 구글링도 해보고 했지만 별 뾰족한 수를 찾지 못해 역시나 삽질만 수십번.


그렇지만 혹시라도 아래와 같이 버퍼 사이즈를 좀 늘려주고 압축을 안하는 옵션을 주고 해서 한번 해보면 될 때도 있다.


git config --global http.postBuffer 524288000


git config --global --add core.compression -1



git clone이 제대로 안되지만 이미 소스 파일을 가지고 있다면 그냥 로컬에 복사를 한 뒤에 상단의 git init 부터 순서대로 해봐도 된다. 




앞으로 갈 길



현재는 commit을 하고 push를 해서 리모트 저장소에 올려놓는 것 까지는 할 수 있지만 역시나 문제가 발생했을 때 대처방법이나 혹은 commit 한 것을 되돌리거나 하는 다양한 명령들에 대한 이해도가 부족해서 더 공부해야 할 듯.









'git' 카테고리의 다른 글

로컬 디렉토리를 옮긴 후 git 작동이 안될 때  (0) 2016.03.29
추천 git 무료 인터넷 강의  (0) 2014.08.05
Pro git 원본 및 번역본 PDF  (0) 2014.07.23