본문 바로가기
개발환경 및 개발 툴

git이란 무엇이고 왜 사용해야 할까?

by blackJ 2021. 4. 29.
git이란 무엇이고 왜 사용해야 할까?

 

 

git이 무엇인지 알기 위해서는 먼저 버전 관리 시스템의 이해가 필요하다.

 

버전 관리 시스템이란?

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

예를 들어 같은 내용의 파일을 업데이트 때마다 날짜를 다르게 저장한다던가 넘버링을 하는 형태이다.

 

 

git에서는 거의 모든 컴퓨터의 파일의 버전을 관리할 수 있다고 한다.

 

git은 분산 버전 관리 시스템(DVCS)이다. DVCS에서의 클리어트는 단순히 파일의 마지막 스냅샷을 checkout하지 않는다. 그냥 저장소를 히스토리와 더불어 전부 복제한다. 서버에 문제가 생기면 이 복제물로 다시 작업을 시작할 수있다. 클라이언트는 중에서 아무거나 골라도 서버를 복원할 수있다. clone은 데이터를 가진 진정한 백업이다.

 

 

git의 특징

1. 차이가 아니라 스냅샷

git은 데이터를 파일 시스템 스냅샷의 연속으로 취급하고 크기가 아주 작다. git은 커밋하거나 프로젝트의 상태를 저장할 때마다 파일이 존재하는 그 순간을 중요하게 여긴다. 파일이 달라지지 않았으면 Git은 성능을 위해서 파일을 새로 저장하지 않는다. 단지 이전 상태의 파일에 대한 링크만 저장한다. Git은 데이터를 스냅샷의 스트림처럼 취급한다.

 

2. 거의 모든 명령을 로컬에서 실행

예를 들어 Git은 프로젝트의 히스토리를 조회할 때 서버 없이 조회한다. 그냥 로컬 데이터베이스에서 히스토리를 읽어서 보여 준다. 그래서 눈 깜짝할 사이에 히스토리를 조회할 수 있다. 어떤 파일의 현재 버전과 한 달 전의 상태를 비교해보고 싶을 때도 Git은 그냥 한 달 전의 파일과 지금의 파일을 로컬에서 찾는다. 파일을 비교하기 위해 리모트에 있는 서버에 접근하고 나서 예전 버전을 가져올 필요가 없다.

 

3. Git의 무결성

Git은 데이터를 저장하기 전에 항상 체크섬을 구하고 그 체크섬으로 데이터를 관리한다. 

 

4. Git은 데이터를 추가할 뿐

Git으로 무얼 하든 Git 데이터베이스에 데이터가 추가 된다. 되돌리거나 데이터를 삭제할 방법이 없다.

 

 

중요한 세 가지 상태

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

 

 

참고 사이트 : git-scm.com/book/ko/v2/%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-%EB%B2%84%EC%A0%84-%EA%B4%80%EB%A6%AC%EB%9E%80%3F

 

Git - 버전 관리란?

1.1 시작하기 - 버전 관리란? 이 장에서 설명하는 것은 Git을 처음 접하는 사람에게 필요한 내용이다. 먼저 버전 관리 도구에 대한 이해와 Git을 설치하는 방법을 설명하고 마지막으로 Git 서버를 설

git-scm.com

 

'개발환경 및 개발 툴' 카테고리의 다른 글

구글 colab(코랩) : 파이썬 개발환경  (0) 2021.06.22
윈도우에서 git 설치  (0) 2021.04.29