Development Environment/Git & GitHub

1. What is Git?

개발자킹콩 2022. 4. 8. 15:55

VCS(Version Control System)

Git은 VCS중 하나이다. 코드 뿐 아니라 텍스트, 노트, 그래픽 파일, 레이아웃 파일 등 컴퓨터에 있는 대부분의 파일을 버전 관리 가능하다. 

 

Centralized Version Control - 서버에 히스토리를 관리해서 각각의 개발자들이 원하는 내용을 서버에 업로드해서 즉각적으로 동기화가 이루어지는 시스템이다. 문제점은 서버에 문제가 생기면 많은 개발자들이 작업을 하지 못하고, 인터넷이 되지 않으면 작업을 할 수 없다.

 

Distributed Version Control - 이러한 문제점을 해결하기 위해 나온 버젼 관리이며, 대표적으로 Git이 존재한다.

서버에만 히스토리 정보를 갖고 있는게 아니라, 개발자 모두가 히스토리를 갖고있다.

이렇게 분산된 시스템을 이용하게 되면 서버에 문제가 생기거나 서버가 다운이 되어도,

각각의 개발자들이 동일한 히스토리를 갖고 있기때문에 서로의 정보를 이용해서 서버를 보관하고 계속 일을 이어나갈 수 있다. 

당연히 오프라인에서 인터넷 없이도 작업을 진행할 수 있다.

이런 서버는 회사 내부 Private한 서버를 이용하는 경우도 있고, ( Github, Bitbucket )과 같은 클라우드를 이용하는 경우도 있다.

 


 

Git의 역사

아주 오래전에 리눅스 커널 팀에서는 매 버전마다 새로운 패치가 발행이 되었는데,

이렇게 수동적으로 하는 것을 개선하고자 BitKeeper라는 버전 관리 시스템을 도입한다.

BitKeeper의 오너가 유료화가 되면서, 리눅스커널의 창시자인 Linus Torcalds는 더 획기적인 제품을 만든다.

CVC를 따르지 않고, BitKeeper와 같이 분산 버전 관리이고, 변경사항을 적용했을때 일괄적이고 안전하게 할 수 있는 Git이 2005년에 등장했다.

 

Git은 delta-based(변경사항만 갖고있기)가 아닌  stream of snapshots(프로젝트의 전체내용을 스냅샷)이다.

그래서 빠르고 간단하게 버전 사이 이동이 가능하다. 변경되지 않은 파일들은 예전 파일의 링크를 갖고있어서 가볍다.

 


 

Git의 장점

  • most commonly used
  • free
  • open source
  • lightning fast
  • work offline
  • undo mistakes
  • easy and fast branching/merging

 

 

 

 

 

'Development Environment > Git & GitHub' 카테고리의 다른 글

Git ignore file  (0) 2022.05.29
3. 유용한 자료  (0) 2022.04.10
2. How to install Homebrew?  (0) 2022.04.08