버전관리시스템
1. file1.t.xt 파일 작업완료 -> 이메일로 전송 -> 파일을 변경( 덮어씌우기) -> 다시 이메일로 전송
-> 다시 원상태로 변경을 해야함 -> 이미 덮어씌우기를 해서 이전 파일이 없는 경우 -> 다시 만들어야함
만약 큰프로젝트가 들어와서 100개의 파일을 만들고 수정을 해야할 상황이 오면 전체를 복제해한다. 시간이 오래걸리고 용량이 많아진다. 또 바이러스, 컴퓨터가 꺼지는 상황이 오면 파일이 날아가게 된다.
2. VCS -버전 관리시스템
수정을 할 떄 마다 전체복사를 하는 것이 아닌 부분변경을 하여 용량을 효율적으로 사용할 수 있다.
단점 : 바이러스에 취약함, 로컬에서 관리하기 때문에 협업 X
3. CVCS - 중앙집중형 버전 관리시스템
파일을 한 곳에 최초 업로드를 하고 내려받아서 수정을 한다. 수정된 것을 다시 중앙에 올린다.
협업 가능
단점: 서로 다른 곳에서 덮어씌우기를 할 수 있다.
중앙집중형이기 때문에 관리하는 곳에서 중앙저장소에서 오류가 나타나면 협업을 할 수 없다.
4. git - 분산버전관리 시스템
내부 로컬에서 관리하다가 필요할때 로컬 저장소에 올리는 형식
로컬도 histroy를 가지고 있으며 histroy 를 통해서 중앙저장소가 고장나더라도 복구가 가능
인터넷이 안되더라도 컴퓨터 내부에서 관리하다가 필요할 때 업로드를 함
깃 실행 원리
DVCS 분산관리시스템
- git init : 파일을 깃으로 실행
- 폴더에 파일이 생기면 변경감지를 함
- git add : index 영역( tree목차)
폴더랑 파일형태가 만들어짐 ( 폴더 -free , 파일 - BLOB) - git commit : 헤더영역 ( index영역의 것을 가져와 영구 기록)
한번만 index로 관리를 하면 복구가 가능하다.
예시
- ex01 파일안에 text1.txt 파일을 생성
▶ 인덱스에는 tree의 text1. txt 형태로 이루어짐 - ex01 파일안에 text2. txt 파일을 생성
▶ 기존에 text1.txt 파일을 두고 새롭게 tree 가 text2.txt와 기존파일을 포함
- 기존 text1.txt 파일 수정시
▶ 빨강박스의 구조로 잡힘 - 실제 파일은 하드디스크에 있으며 이것을 해쉬로 복사한다.
Master 에는 아래와 깉이 남게 된다.
'git' 카테고리의 다른 글
소규모 협업하기 (0) | 2021.12.15 |
---|---|
git 되돌리기 명령어 (0) | 2021.12.07 |
[데어프로그래밍] git 1. ( git의 배경, github) (0) | 2021.12.05 |
Git의 동작원리 (0) | 2021.10.19 |
Git이 등장한 배경과 장점 (0) | 2021.10.19 |