Git

[GIT] GIT이란? Git의 동작.

디벨로펄 2023. 5. 10.
반응형

흠.. 부끄럽지만.

Git을 매일 사용하면서, 어떤식으로 파일을 관리하는지에 대해서는 전혀 몰랐던 것 같다.

 

Git의 동작

 

출처 : git-scm.com/book

특징

1. 대부분의 명령을 로컬에서 실행

- push, pull등 원격 저장소에 변경사항을 반영하거나, 최신버전을 가져올 때만 네트워크가 필요하다.

--> 오프라인에서도 작업이 가능하다는 말.

 

2. git의 무결성

- 데이터 저장 전에 체크섬을 구하고, 그 체크섬으로 데이터를 관리한다.

checksum : git에서 사용하는 가장 기본적인(Atomic)데이터 단위, 40자 길이 16진수 문자열.

- SHA-1해시를 사용해 checksum을 만든다. 

*SHA-1 : 입력을 받고 해시값을 만드는 암호화 해시 함수(보통 16진수, 40자리 문자열)

- 모든 것을 해시로 관리한다.

 

3. git은 데이터를 추가 한다.

- revert같은 기능을 써보면, 기존 변경점을 rollback하는 또 다른 변경점을 생성해낸다.

예를 들어 3(기존) + 4(변경1)  * 5(변경2)와 같은 상태에서

기존으로 돌아가고 싶으면

3(기존) +4(변경1) * 5(변경2) /5(변경3) -4(변경4)

라는거지.

 

 

세 가지 상태

Git은 파일을 Commited, Modified, Staged 3가지 상태로 관리한다.

- Commited : 데이터(변경사항)가 로컬 DB에 안전하게 저장됨.

- Modified : 수정되었지만, DB에 커밋되지 않은 상태

- Staged : 현재 수정 파일을 곧 커밋할 것이라고 표시한 상태.

 

세 가지 공간

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

2. Staging Area에 파일을 Stage해서 커밋할 스냅샷을 만든다.

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

 

출처 : https://git-scm.com/book/ko/v2/

□ 워킹 트리

- 실제 소스코드 수정이 이루어지는 영역이다.

- 특정 버전을 Checkout 한 것이라고도 한다.

git status로 현재 상태 확인 가능 : not staged임을 확인할 수 있음.

 

□ Git 디렉토리 : git이 프로젝트의 메타데이터와 객체 DB를 저장하는 곳.

- .git 디렉토리가 있어야지, git에 의해 관리되는 프로젝트라 인식한다.

- clone하거나, 특정 디렉토리를 git으로 설정하면 생성된다.

Staging Area : git 디렉토리에 있으며, 곧 커밋할 파일 정보를 저장한다.. Git에서는 기술용어로 Index라 한다.

git add 파일명으로 staging area에 올림.

Staging area에 올리면, 이제 commit할 수 있다. 창을 잘 읽어보면,

git restore --staged "파일명"으로 unstage를 할 수 있다는 것을 알 수 있다.

로그를 꼼꼼히 읽자...ㅎ

 

 

오늘은 여기까지.

이미 자주 사용해서 익숙한 기능이지만

개념을 알고 나니까. 왠지 더 잘 쓸 수 있을 것만 같다.

뿌.듯.

 

반응형

'Git' 카테고리의 다른 글

[Git] Git- Stash(임시저장)  (0) 2023.05.25
[Git] Git 저장소 생성  (0) 2023.05.23
[GIT] Git 초기 설정 - 도움말, 사용자 정보설정  (0) 2023.05.23
[GIT] Git 공부를 시작하다.  (0) 2023.05.10

댓글