2022. 10. 26. 19:26ㆍGit
버전 관리란?
버전 관리 시스템은 파일 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 꺼내올 수 있는 시스템이다.
그렇다면, 버전 관리의 장점은?
- 각 파일 또는 프로젝트를 이전 상태로 되돌릴 수 있음.
- 시간에 따른 수정 내용 비교 가능
- 이슈가 발생했다면, 누가 언제 만들어낸 이슈인 지 알 수 있음.
- 파일을 잃어버리거나, 잘못됬을 때도 쉽게 복구 가능
버전 관리의 역사
- 로컬 버전 관리(로컬 VCS) : Local Computer에 파일 변경 정보를 관리할 데이터베이스를 만들어 관리하는 방식
- 중앙 집중식 버전 관리(CVCS) : 중앙에서 파일을 관리하는 서버가 있다.
- 로컬 VCS에 비해 관리하기 편함(누가 무엇을 하고 있는 지 파악하기 쉬움)
- But, 중앙 데이터베이스에 문제가 생긴다면? 큰일나겠죠!
- 분산 버전 관리 시스템(DVCS) : 단순히 파일의 마지막 스탭샷을 Checkout 하지 않고 저장소 전부를 복제한다. (Git)
- 서버에 문제가 생겨도 복제물로 다시 작업 시작 가능
- 클라이언트끼리도 서버를 복제 가능
Git의 기초
- 차이가 아니라 스냅샷
git에서는 변경된 파일 전체를 저장하지 않고, 파일에서 변경된 부분을 찾아 수정된 내용만 저장한다.
- 거의 모든 명령을 로컬에서 실행
프로젝트의 모든 히스토리가 로컬디스크에 있기 때문에 네트워크에 영향을 받지 않는다.
즉, 오프라인 상태이거나 VPN으로 연결할 수 없어도 할 수 없는 일이 별로 없다. 비행기나 기차 등에서 작업하고 네트워크에 접속하고 있지 않아도 커밋 할 수 있다.
- Git의 무결성
git은 데이터를 저장하기 전에 항상 체크섬을 구하고, 그 체크섬으로 데이터를 관리한다.
체크섬이란, git에서 사용하는 가장 기본적인 데이터 단위이다.
- Git은 데이터베이스에 데이터를 추가할 뿐
Git 프로젝트의 3가지 단계
Git directory : 프로젝트의 메타데이터와 객체 데이터베이스를 저장하는 곳
(다른 컴퓨터에 있는 저장소를 Clone할 때 Git 디렉토리가 만들어짐)
Woking Directory : 작업을 하는 공간
Staging Area : 임시로 저장하는 공간
Git 파일의 3가지 상태
Git의 파일은 Modified, Staged, Commited 이렇게 3가지 상태로 관리된다.
Modified : 수정한 파일을 아직 로컬 데이터 베이스에 커밋하지 않은 상태
Staged : 현재 수정한 파일을 곧 커밋할 것이라고 표시한 상태
Committed : 데이터가 로컬 데이터베이스에 완전하게 저장된 상태
다음 포스팅에는, git 명령어를 사용해서 git 프로젝트의 단계와 git 파일의 상태에대해서 다루겠습니다!
'Git' 카테고리의 다른 글
git Vim으로 commit 메시지 작성하기 (0) | 2023.04.26 |
---|---|
특정 파일만 커밋하기! (0) | 2023.03.08 |
Fork와 Clone의 차이점 (0) | 2022.11.05 |
git 프로젝트의 단계와 3가지 파일의 상태 (0) | 2022.10.26 |
LF will be replaced by CRLF [Git 경고 메세지] 해결방안 (0) | 2022.10.26 |