이해 목표
- Git은 이전 VCS와 무엇이 다른가?
- Git은 어떻게 동작하는가?
- Git은 무엇인가?
Git은 이전 VCS와 무엇이 다른가?
Git과 이전 VCS과의 차이점은 데이터를 다루는 방법에 차이점이 존재한다.
큰 틀에서 봤을 때 VCS 시스템 대부분은 관리한 정보가 파일들의 목록이다. 각 파일들의 변화를 시간순으로 관리하면서 파일들의 집합을 관리한다.
git은 데이터를 파일 시스템 스냅숏의 연속으로 취급하고 크기가 매우 작다. git은 커밋하거나 프로젝트의 상태를 저장할 때마다 파일이 존재하는 순간을 중요하게 여긴다. 파일의 변화가 없다면 새로 저장하지 않고 이전 상태의 파일에 대한 링크만 저장한다.
git을 사용하면 거의 모든 명령이 로컬 파일과 데이터만 사용하기 때문에 이전 중앙 처리방식의 네트워크 연결이 필요가 없다. 명령어도 네트워크 속도에 영향을 받지 않고 로컬 환경에서 실행되기 때문에 매우 빠른 속도를 경험할 수 있다.
git은 SHA-1 해시를 사용하여 체크섬을 만든다. 이 체크섬을 통해 데이터의 무결성을 관리한다. 체크섬은 중복 검사의 한 형태로 나열된 데이터를 더하여 체크섬 숫자를 얻고, 정해진 비트수의 모듈라로 정해진 비트수로 재구성하는 것이다.
Git의 세 가지 상태
git은 파일을 committed, Modified, Staged 이렇게 세 가지 상태로 관리한다. 많이들 접했을 것이다.
Committed는 데이터가 로컬 데이터베이스에 안전하게 저장됐다는 것을 의미한다.
Modified는 수정한 파일을 아직 로컬 데이터베이스에 커밋하지 않은 것을 의미한다.
Staged란 현재 수정한 파일을 곧 커밋할 것이라고 표시한 상태를 의미한다.
Working Directory , Staging Area ,. git Repository?
1. git 레파지토리는 git이 프로젝트의 메타데이터와 객체 데이터베이스를 저장하는 곳을 말한다. 다른 컴퓨터에 있는 저장소를 clone 할 때 git 레포지토리가 만들어진다.
2. Working Directory는 특정 버전은 checkOut 한 것이다. git 디렉터리는 지금 작업하는 디스크에 있고 그 디렉터리 안에 압축된 데이터베이스 파일을 가져와서 워킹 트리를 만든다. 파일 시스템중 해당되는 버전을 가져와 작업 디렉터리 안에 구성하는 걸 말하는 것 같다.
3. Stagin Area는 git 디렉터리 안에 있다. 단순한 파일고 곧 커밋할 파일에 대한 정보를 저장한다.
git으로 하는 일
1. 워킹 트리에서 파일을 수정한다.
2. Staging Area에 파일을 stage 해서 커밋할 스냅숏을 만든다.
3. staging Area에 있는 파일을 커밋해 git디렉터리에 영구적인 스냅숏으로 저장한다.
정리하면 git 디렉터리에 존재하는 파일은 committed 된 상태이고 파일을 수정하고 stage했다면 staged상태이고, 아직 stage하지 않았다면 Modified 상태이다.
우리가 clone로 깃허브에서 가져오는 것은 committed된 상태의 파일의 스냅숏을 내 로컬로 가져오는 것이고, 이 상태에서 수정해서 stage 하여서 commit 하게 되면 영구 스냅숏으로 내 로컬 저장소에 저장되는 걸 의미하는 것 같다.
이 상태에서 push 하면 깃 저장소에 올라가나 보다.
'Git' 카테고리의 다른 글
Git 기초 명령어 (0) | 2021.02.10 |
---|---|
Git 설치 (0) | 2021.02.10 |
Git과 Github의 시작 (0) | 2020.08.03 |
깃허브 주소 (0) | 2020.02.18 |
2020년 개발자 로드맵 (0) | 2020.02.18 |
댓글