HS_development_log

Git의 이해 및 사용 2 - Git 기초 본문

Git

Git의 이해 및 사용 2 - Git 기초

DevHyeonseong 2020. 1. 14. 14:08
반응형

Git의 버전 관리 방법

 

1. Git과 다른 버전관리프로그램의 차이점

· CVS, Subversion, Perforce 등 시스템은 각 파일의 변화를 시간순으로 관리하면서 파일들의 집합을 관리

· 그러나 Git은 성능을 위해 이전상태의 파일에 대한 링크만저장, 데이터를 스냅샷의 스트림처럼 취급

※스냅샷이란? 과거에 한 때에 존재하고 유지시킨 컴퓨터파일과 디렉터리의 모임. 쉽게말해 잘못 지워지거나 날라간 파일을 복구할수 있는 기능

· 시간순으로 프로젝트의 스냅샷을 저장한다.

출처 : https://git-scm.com/book/ko/v2/%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-Git-%EA%B8%B0%EC%B4%88

2. Git은 거의 모든 명령을 로컬에서 실행 한다!

· 모든 명령이 로컬 파일과 데이터만 사용하기 때문에 네트워크에 다른 컴퓨터는 필요없음

· 프로젝트의 모든 히스토리가 로컬 디스크에 있기때문에 모든 명령이 순식간에 실행됨

· 오프라인 상태이거나 VPN에 연결하지못해도 커밋할수 있음

 

3. Git의 무결성

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

· 체크섬을 이해하는 Git 없이는 어떠한 파일이나 디렉토리도 변경 불가

· 체크섬은 Git에서 사용하는 가장 기본적인 데이터 단위이자 Git의 기본철학 

· Git은 SHA-1 해시를 사용하여 체크섬을 만듬

· 실제로 Git은 파일을 이름으로 저장하지않고 해당 파일의 해시로 저장

※체크섬이란? 체크섬(checksum)은 중복 검사의 한 형태로, 오류 정정을 통해, 공간(전자 통신)이나 시간(기억 장치) 속에서 송신된 자료의 무결성을 보호하는 단순한 방법.

 

4. Git의 세가지 상태(중요)

 

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

 

· Committed란 데이터가 로컬 데이터베이스에 안전하게 저장됐다는 것을 의미.

· Modified는 수정한 파일을 아직 로컬 데이터베이스에 커밋하지 않은 것을 말함.

· Staged란 현재 수정한 파일을 곧 커밋할 것이라고 표시한 상태를 의미.

파일을 수정하고 확인하자 빨간색 Modified. 아직 수정한 파일을 로컬데이터파일에 커밋하지 않았기때문
add하고 확인하자 Committed로 상태변경
출처 : https://git-scm.com/book/ko/v2/%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-Git-%EA%B8%B0%EC%B4%88

 

· Git 디렉토리는 Git이 프로젝트의 메타데이터와 객체 데이터 베이스를 저장하는 곳

· 다른 컴퓨터에 있는 저장소를 Clone 할 때 Git 디렉토리가 만들어진다

 

· 워킹트리는 프로젝트의 특정 버전을 Checkout 한 것

· Git 디렉토리는 지금 작업하는 디스크에 있고 그 디렉토리 안에 압축된 데이터베이스에서 파일을 가져와서 워킹 트리를 만듬

 

· Staging Area는 Git 디렉토리에 있다. 단순한 파일이고 곧 커밋할 파일에 대한 정보 저장

· Git에서는 기술용어로 "Index" 라고 함

 

정리

 

1. 워킹 트리에서 파일을 수정

2. Staging Area에 파일을 Stage 해서 커밋할 스냅샷을 만듬. 선택된 파일 및 전체파일을 추가 가능

3. Staging Area에 있는 파일들을 커밋해서 Git 디렉토리에 영구적인 스냅샷으로 저장

 

·  Git 디렉토리에 있는 파일은 Committed 상태

·  파일을 수정하고 Staging Area 에 추가했다면 Staged

·  Checkout 하고나서 수정했지만, 아직 Staging Aread에 추가안했으면 Modified

 

 

 

 

 

참고사이트 :

1. https://ko.wikipedia.org/wiki/%EC%B2%B4%ED%81%AC%EC%84%AC

2. https://git-scm.com/book/ko/v2/%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-Git-%EA%B8%B0%EC%B4%88

 

반응형