본문 바로가기
아카이브

pro git / Git 기초

by PilYeooong 2020. 6. 14.

Git 기초

Git의 핵심이란 무엇인가 ?
-> Git을 이해하는데 굉장히 중요

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

Git은 거의 모든 명령이 로컬 파일과 데이터만 사용한다. 때문에 네트워크에 있는 다른 컴퓨터는 필요치 않다.
이러한 특징 때문에 프로젝트의 모든 히스토리들에 대한 명령이 순식간에 실행된다.
(오프라인 상태이거나, VPN에 연결되지 않아도 막힘없이 일처리가 가능하다)

Git은 데이터를 저장하기 전에 항상 체크섬을 구하고, 이를 통해 데이터를 관리한다.
체크섬은 Git에서 사용하는 가장 기본적인 데이터 단위이자, 기본 철학이다. 또한 Git 없이는 체크섬을 다룰 수 없다.
Git은 SHA-1 해시를 사용하여 체크섬을 생성, Git은 모든 것을 해시로 식별하며, 실제로 파일의 이름으로 저장하는 것이 아닌 파일의 해시로 저장한다.

Git은 데이터를 추가할 뿐이다. 되돌리거나 데이터를 삭제할 수는 없다.
Git 또한 커밋하지 않으면, 변경사항을 잃어버릴 수도 있다. 하지만 커밋하고 난 후에는 데이터를 잃어버리는 것이 더 어렵다.
프로젝트가 심각하게 망가질 걱정 없이 실험을 진행할 수 있다.



Git에서의 3가지 상태

Committed, Modified, Staged
-> Git을 다룬다면 반드시 짚고 넘어가야 하는 부분들

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

 

Git 디렉토리는 Git이 프로젝트의 메타 데이터 및 객체 데이터베이스를 저장하는 곳이며, Git의 핵심

Working tree는 프로젝트의 특정 버전을 Checkout 한 것,  Git 디렉토리는 지금 작업하는 디스크에 있고 그 디렉토리 안에 압축된 데이터베이스에서 파일을 가져와서 워킹 트리를 만든다.

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

Git으로 하는 일은 기본적으로 아래와 같다.

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

  2. Staging Area에 파일을 Stage 해서 커밋할 스냅샷을 만든다. 모든 파일을 추가할 수도 있고 선택하여 추가할 수도 있다.

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

- Git 디렉토리에 있는 파일들은 Committed 상태이다.
- 파일을 수정하고 Staging Area에 추가했다면 Staged이다.
- Checkout 하고 나서 수정했지만, 아직 Staging Area에 추가하지 않았으면 Modified 상태이다.

 

원문 및 출처 - 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
(Pro git을 읽고 정리 겸 작성 중인 글입니다)

'아카이브' 카테고리의 다른 글

200615 / TIL  (0) 2020.06.15
200614 / TIL  (0) 2020.06.14
200612 / TIL  (0) 2020.06.13
200611 / TIL  (0) 2020.06.11
200610 / TIL  (0) 2020.06.10