상세 컨텐츠

본문 제목

[Git] Git이란?

Operating System (OS) & Network & VCS/Git

by 찌니씨 2022. 10. 14. 17:42

본문

git

 


Git

버전 관리 시스템 (VCS - Version Control System)

 

2002년 Linux 커널  "BitKeeper" 상용 DVCS를 사용

 

2005년 BitKeeper의 무료 사용이 재고되자 Patch Set(파일에서 변경되는 부분)을 관리 Linux 개발,

커뮤니티(특히 Linux 창시자 Linus Torvalds)가 자체 도구를 만드는 계기 되었다.

 


로컬 버전 관리

RCS (Revision Control System)

 

중앙집중식 버전 관리 (CVCS)

CVS, Subversion, Perforce

 

다른 개발자와 함께 작업할 때 생기는 문제를 해결

중앙 서버에 문제가 발생 시 작업 중단, 백업 방법이 없다. (모든 것을 잃는다.)

 

분산 버전 관리 시스템 (DVCS)

Git, Mecurial, Bazaar, Darcs

 

리모트 저장소가 존재, 중앙집중식 시스템으로는 할 수 없는 워크플로를 다양하게 사용할 수 있다.

 


파일들의 목록 vs 스냅숏의 스트림


VCS 

    시스템 대부분은 관리하는 정보 파일들의 목록

    네트워크의 속도에 영향

 

Git 

    파일을 새로 저장하지 않는다. 단지 이전 상태의 파일에 대한 링크 저장

    로컬 파일과 데이터만 사용

    해시를 사용하여 체크섬을 만든다

    Git 데이터베이스에 데이터가 추가


 

Git의 세 가지 상태

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

 


 

워킹 트리, Staging Area, Git 디렉터리

 

  1. 워킹 트리 (프로젝트의 특정 버전을 Checkout 한 것)에서 파일을 수정한다.
  2. Staging Area (곧 커밋할 파일에 대한 정보를 저장)에 파일을 Stage 해서 커밋스냅숏을 만든다. 모든 파일을 추가할 수도 있고 선택하여 추가할 수도 있다.
  3. Staging Area에 있는 파일들을 커밋해서 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

 

Git - Git 기초

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

git-scm.com

 

'Operating System (OS) & Network & VCS > Git' 카테고리의 다른 글

[Git] Mirror (저장소 복사)  (0) 2022.10.20
[Git] mergetool  (0) 2022.10.12
[Git] Commit tamplate file  (0) 2022.10.12
[Git] Cherry-pick  (0) 2022.10.11
[Git] Merge 되돌리기  (0) 2022.10.11

관련글 더보기

댓글 영역