본문 바로가기

git

gitbook 1.3 시작하기 git 기초!

참조: PRO GIT

 

1.1버전관리란?

1.2 짧게 보는 git의 역사

1.3 git 기초

1.4 CLI

1.5 GIT 설치

1.6 GIT 최초 설정

1.7 도움말 보기

1.8 요약

 

Git 기초

git은 기존의 vcs와 정보를 취급하는 방식이 다르다.

git을 제대로 이해하려면 어떻게 동작하는지 이해해야 한다.

 

스냅샷

vcs와 git의 가장 큰 차이점은 데이터를 다루는 데에 있다.

기존의 vcs는 관리하는 정보가 파일의 목록들이다.

파일의 변화를 시간순으로 관리하면서

파일들의 집합을 관리한다. (델타 기반 버전 관리라고 부른다.)

기존 vcs 방식 시간에 따라 저장한다. 

하지만!

git은 파일이 존재하는 그 순간을 중요하게 여긴다.

깃은 성능을 위해서 파일을 새로 저장하지 않는다!

git 방식

git은 로컬에서 거의 모든 명령이 실행된다.

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

(네트워크에 영향을 받지 않는다.)

 

즉 오프라인 상태이거나 vpn에 연결하지 못해도 막힘 없이 일 할 수 있다.

심지어 commit도 가능하다.

 

git의 무결성

git은 데이터 저장을 위해 체크섬을 구하고 그것으로 데이터를 관리한다.

*체크섬이란: 중복검사의 한 형태, 40자 길이의 16진수 문자열 (간단히 넘기자)

24b9da6552252987aa493b52f8696cd6d3b00373

git은 파일의 이름으로 저장하지 않고 해당 파일의 해시로 저장한다.

 

git은 데이터를 추가할 뿐

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

git도 커밋하기 전에는 데이터를 잃어버릴 수 있으나 commit 하고 나면 데이터를 삭제하기 어렵다.

 

★git의 세 가지 상태 (중요)

git은 파일을 committed, staged, moified세 가지 상태로 관리한다.

committed란 데이터가 로컬 git 데이터베이스에 안전하게 저장.

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

moified는 수정한 파일을 아직 로컬 데이터베이스에 커밋하지 않은 것을 의미

이 세가지 상태는 git directory, staging area, working directory 이렇게 연결되어 있다.

 

git directoy는 프로젝트의 메타데이터와 객체 데이터베이스가 저장되는 곳

git directory가 git의 핵심!

 

staging area는 git 디렉터리에 있다, 곧 commit 할 파일에 대한 정보를 저장한다. 

기술 용어로는 index라고 한다.

 

working directory 프로젝트의 특정 버전을 checkout 한 것

git 디렉터리는 지금 작업하는 디스크에 있고

디렉토리 안에 압축된 데이터베이스에서 파일을 가져와서 워킹 트리를 만든다.

 

Working Directory, Staging Area, .git directory

git에서 하는 일은 기본적으로 3가지

1. working directory에서 파일을 수정한다.

2. staing area에서 파일을 stage 해서 (커밋할 자료를 저장) 커밋할 스냅샷을 만든다.

3. staging area에 있는 파일들을 커밋해서 git directory에 영구적인 스냅샷을 저장

 

git 디렉터리의 파일들은 committed 한 상태이다.

staging area에 추가했다면 staged이다.

staging area에 추가하지 않았다면 modified이다.

 

git에서 중요한 세 가지 저장소에 대해서 꼭 기억해야겠다.

modified -> working directory에 있는 상태

staged -> staging area에 add 한 상태

committed -> git 디렉터리에 파일들을 추가한 상태 (데이터 유실하기 어려움)

 

 

'git' 카테고리의 다른 글

gitbook 1.5 시작하기 git 설치  (0) 2021.08.04
gitbook 1.4 CLI  (0) 2021.08.04
gitbook 1.2 짧게 보는 git의 역사  (0) 2021.08.02
gitbook 1 git 시작하기!  (0) 2021.07.23
내가 보기 위한 pro git 책 정리!  (0) 2021.07.22