취미와 밥줄사이

[Git] Git이란? 본문

Tools/Git & GitHub

[Git] Git이란?

취미와 밥줄사이 2021. 10. 12. 00:49

차이가 아니라 스냅샷


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

 

Git은 데이터를 추가할 뿐


  • Git으로 무얼 하든 Git 데이터베이스에 데이터가 추가된다.
  • 되돌리거나 데이터를 삭제할 방법이 없다
  • Git을 사용하면 프로젝트가 심각하게 망가질 걱정 없이 매우 즐겁게 여러 가지 실험을 해 볼 수 있다.

세 가지 상태


  • Git은 파일을 Committed, Modifed, Staged 이렇게 세 가지 상태로 관리한다.
  • Committed란 데이터가 로컬 데이터베이스에 안전하게 저장됐다는 것을 의미한다.
  • Modified는 수정한 파일을 아직 로컬 데이터베이스에 커밋하지 않은 것을 말한다.
  • Staged란 현재 수정한 파일을 곧 커밋할 것이라고 표시한 상태를 의미한다.
  • 이렇게 세 가지 상태는 Git 프로젝트의 세 가지 단계와 연결돼 있다.

  • Git 디렉토리는 Git이 프로젝트의 메타데이터와 객체 대이터베이스를 저장하는 곳을 말한다.
  • GIt의 디렉토리가 Git의 핵심이다. 
  • 다른 컴퓨터에 있는 저장소를 clone 할 때 Git 디렉토리가 만들어진다.
  • 워킹 트리는 프로젝트의 특정 버전을 Checkout 한 것이다. 
  • Git의 디렉토리는 지금 작업하고 있는 디스크에 있고 그 디렉토리아 안에 압축된 데이터베이스에서 파일을 가져와서 워킹 트리를 만든다.
  • Staging Area는 Git 디렉토리에 있다. 단순한 파일이고 곧 커밋할 파일에 대한 정보를 저장한다. Git에서는 기술용어로 Index라고 하지만 Staging Area라는 용서를 사용해도 상관 없다.
  • Git으로 하는 일은 기본적으로 아래와 같다.
    • 워킹 트리에서 파일 수정
    • Staging Area에 파일은 Stage 해서 커밋할 스냅샷을 만든다. 모든 파일을 추가할 수도 있고 선택하여 추가할 수 있다.
    • Staging Area에 있는 파일들을 커밋해서 Git 디렉토리에 영구적인 스냅샷으로 저장한다.

REFERENCE


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 기초

Subversion과 Subversion 비슷한 놈들과 Git의 가장 큰 차이점은 데이터를 다루는 방법에 있다. 큰 틀에서 봤을 때 VCS 시스템 대부분은 관리하는 정보가 파일들의 목록이다. CVS, Subversion, Perforce, Bazaar 등

git-scm.com