GIT 시작하기


개요


깃을 소개하고 깃의 기초에 대해 알아보겠다.




버전 관리


버전 관리 시스템의 정의는 파일변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 꺼내올 수 있는 시스템을 말한다.

영어로 Version Control System이라고 하며 줄여서 VCS라고 말한다.

버전 관리 시스템을 사용하면 각 파일 또는 프로젝트 전체를 이전 상태로 되돌릴 수 있고 누가 언제 만들어낸 이슈인지도 알 수 있으며 파일에 오류가 생겨도 쉽게 복구 할 수 있다.

버전 관리 시스템에는 로컬 버전 관리, 중앙집중식 버전 관리(CVCS), 분산 버전 관리 시스템(DVCS)가 있다.

로컬 버전 관리

로컬 버전 관리란 서버를 이용하지 않고 이용하여 로컬 컴퓨터에서만 버전을 관리하는 것이다.

흔히들 사용하는 컴퓨터 환경을 생각하면된다. 로컬에서 많이 사용하는 VCS는 RCS(Revision Control System)이라고 하는 툴이 있는데 Mac os X는 개발도구에 있다.

그림에서 보듯이 로컬 컴퓨터 안에서 간단한 데이터베이스를 사용해서 파일의 변경정보를 관리한다.

개인 로컬에서만 사용하기 때문에 개인 프로젝트에 적합하다.



중앙집중식 버전 관리

중앙집중식 버전관리(CVCS)는 파일을 관리하는 서버가 별도로 있고 클라이언트가 중앙 서버에서 파일을 받아서 사용하는 것이다.

사진과 같이 Central VCS Server가 별도로 존재하고 사용자 A와 B가 파일을 가져오는 방식으로 한다.

그러므로 중앙 서버에 에러가 발생한다면 모든 사용자는 셧다운 되는 위험이 존재한다.

위키피디아같이 서버는 한군데에 있고 서로 다른 사용자가 가져와서 수정한 후에 다시 서버에 저장되는 것이라 보면된다.



분산 버전 관리 시스템

DVCS의 클라이언트는 단순하게 파일의 마지막 스냅샷을 사용하지 않는다 그냥 저장소를 전부 복제하여 사용한다.



사진과 같이 리모트 저장소 자체를 복제하여 각 사용자의 로컬 환경에서 사용한다.

우리가 사용하고자 하는 GIT이 분산버전 관리 시스템에 해당한다.




GIT의 파일 관리 방법




Git은 파일을 Committed, Modified, Staged 이렇게 세가지의 상태로 관리한다.

  • Committed이란 데이터가 로컬 데이터베이스에 안전하게 저장됐다는 것을 말한다.
  • Modified란 로컬에서 수정한 파일을 아직 로컬 데이터베이스에 커밋하지 않은 상태를 말한다.
  • Staged란 현재 수정한 파일을 곧 커밋할 것이라고 표시한 상태를 말한다.

사진에서 Working Directory는 로컬 환경에서 프로그래머가 프로젝트의 특정 버전을 사용하는 공간을 말한다.

Staging Area는 Git 디렉토리 안에 있다.

Git 디렉토리 안에 있는 파일들은 Committed 상태이다.

파일을 수정하고 Staging Area에 추가했다면 Staged 상태이다.

Checkout(사용)하고 나서 수정했지만, 아직 Working Directory에 있다면 Modified 상태이다.




Git 설치와 초기설정


리눅스

sudo apt-get install git

유닉스(맥)

그냥 깔려있다.

윈도우

bash를 이용한다. 여러가지 방법이 있다.

초기설정

git 커밋을 한 번 하면 정보르 변경할 수 없기 때문에 먼저 설정을 해야한다.

git config --global user.name "내이름"

git config --global user.email 내 이메일



git config --list를 치면



이렇게 자신의 정보로 업데이트 되었으면 잘 된 것이다.