-
Git 특징서비스 공부/Git 2022. 10. 13. 16:08
이 포스트와 사용된 사진은 아래의 책 내용을 기반으로 작성하였습니다.
또한 크리에이티브커먼즈에 의거 CC-BY-NC-SA를 따릅니다.
- 버전 관리의 발전
1. 중앙 집권식 버전관리 시스템 (CVCS, Centralized Version Control System)
중앙 서버에 버전정보가 담긴 데이터베이스를 하나 만들고 사용자가 이에 접근하여 필요한 정보를 다운받거나,
업로드 하는 식으로 협업을 진행한다.
단, 서버가 다운되는 경우 이를 진행할 수 없고, 심한 경우에는 데이터가 모두 소실될 수도 있다.
2. 분산형 버전관리 시스템 (DVCS, Distributed Version Control System)
하드웨어의 성능이 발달함에 따라 모든 개발자의 컴퓨터에 버전정보가 담긴 데이터베이스를 만들 수 있게 되었다.
또한 로컬 저장소 뿐만 아니라 리모트 저장소도 여러개 만들 수 있게되어 동시에 다양한 그룹과 협업할 수 있다.
백업과 최신화가 자동으로 이루어지기 때문에 데이터 소실의 우려도 적고,
오프라인이라도 작업할 수 있다.
- Git vs. other VCS
과거 대부분의 VCS는 각 파일의 변화를 시간순으로 관리하면서 그 파일들의 집합을 관리했다. (델타 기반 버전관리)
하지만, Git은 데이터를 파일 시스템 스냅샷의 연속으로 관리한다. (스냅샷 기반 버전관리)
Git은 파일의 변경이 없으면 파일을 저장하는 것이 아닌, 이전 버전의 스냅샷을 저장하기 때문에 용량을 아낄 수 있고,
파일 변경의 차이를 계산하기 위한 과정이 없어 이전버전을 빠르게 불러올 수 있다.
깃은 신이야,, 오픈소스는 신이야,,완전 많고 복잡한 파일들. -> EC35246D692920678211FDA3441D69472AD744EB
완전 많고 복잡한 파일들! -> 172F8675EC7ACB14A5E0623E02CC6FACDDDD84C1또한 Git은 버전을 생성할 때 SHA-1 해시를 이용하여 체크섬을 구하고 그 체크섬으로 데이터를 관리한다.
즉, 데이터의 무결성을 보장한다.
마지막으로 Git은 데이터를 추가만 할 뿐 제거하지는 않는다.
되돌리기 역시 하나의 데이터를 추가하는 과정일 뿐이다.
즉, 과거의 데이터를 잃어버릴 염려가 없다!
- Git의 파일 상태관리
Git은 다음 세가지 상태로 파일의 상태를 관리한다.
1. Modified
파일이 수정된 상태.
단, 로컬 데이터베이스에는 올라가지 않은 상태이다.
이 때 파일은 Working Directory에 있는 상태.
2. Staged
수정된 파일을 곧 로컬 데이터베이스에 올리겠다고 표시한 상태.
이 때 파일은 Staging Area에 있는 상태.
3. Committed
수정된 파일이 로컬 데이터베이스에 안전하게 저장 완료된 상태.
이 때 파일은 Git Repository에 저장된 후 다시 Working Directory에 있는 상태(수정되지 않은 상태 - 최신 상태).
'서비스 공부 > Git' 카테고리의 다른 글
분산 환경 워크플로 (0) 2022.12.06 Git 명령어 정리 - 리모트 브랜치 편 (0) 2022.12.06 Git 명령어 정리 - 로컬 브랜치 편 (2) 2022.12.05 Git 명령어 정리 - 협업 기초 편 (0) 2022.10.23 Git 명령어 정리 - 파일관리 편 (2) 2022.10.14