Git이란?
특정 시점에서의 파일들의 상태를 저장하고 보여주는 버전관리 시스템 (VCS, Verson Control System)의 한 종류 입니다.
GitHub란?
Git을 사용하는 프로젝트를 지원하는 웹호스팅 서비스며 여러 명의 개발자들과 협업을 하면서 소스코드 또는 파일들을 공유할 수 있도록 해주는 플랫폼 서비스이기도 합니다.
Git의 저장소는 자신의 컴퓨터인 Local과 서버에 있는 원격 저장소(GitHub)로 나뉩니다.
서버가 터지면 컴퓨터에 저장해두었던 이전 버전을 서버로 올리고, 컴퓨터가 고장나면 서버에서 다운 받으면 됩니다.
이렇게 여러 대의 컴퓨터와 하나의 메인 서버가 소통하는 방식이 Git(컴퓨터)과 GitHub(서버)의 관계입니다.
코드가 서버에만 있는게 아니라 각자의 컴퓨터에 분산되어 있기때문에 분산형 버전 관리 시스템 (DVCS, Distributed VCS)라고도 부릅니다.
Git의 특징
(1) 빠르다
다른 버전 시스템과 달리 git은 변경된 파일 전체를 저장하지 않고, 스냅샷 방식을 이용하여 수정된 내용만 저장하기 때문에 적은 용량을 차지합니다.
(스냅샷: 마치 사진을 찍듯 특정 시점의 파일을 포착해 보관하는 기술.)
(2) 거의 모든 명령을 로컬에서 실행한다
거의 모든 명령이 로컬의 파일과 데이터만 사용합니다.
프로젝트의 히스토리 조회 시 서버 없이 로컬에서 조회하고, 오프라인 상태에서도 작업이 가능합니다.
(3) 무결성
파일을 이름으로 저장하지 않고 파일의 내용이나 디렉토리 구조를 이용하여 체크섬을 구하고 SHA-1 해시를 사용하여 40자 길이의 16진수 문자열로 저장합니다.
(무결성: 데이터의 정확성과 일관성을 유지하고 보증하는 것.)
(체크섬: 중복검사의 한 형태로, 공간(전자 통신)이나 시간(기억 장치) 속에서 송신된 자료의 무결성을 보호하는 단순한 방법. 체크섬이 맞아 떨이지는지 확인해 봄으로써 메시지가 손상되지 않았다고 결론을 내릴수도 있다.)
(SHA: 안전한 해시 알고리즘. 서로 관련된 암호화적 해시 함수들의 모음.)
'Git' 카테고리의 다른 글
[Git 이론] Git 저장구조, 상태 (0) | 2021.11.15 |
---|