카테고리 없음

Git 기본 개념

ㅈ현 2022. 6. 30. 22:14

Git이란??

Git은 분산 버전 관리 시스템 으로 각소스의 버전들을 로컬, 서버등 다양한 곳에 분산하여 저장한다. 떄문에 한곳에서 장애가 일어나더라도 빠르게 복구할 수 있는 장점이 있다.

버전 관리

파일의 변화를 기록해 나중에 특정 시점의 버전을 볼 수 있는 시스템이다.
버전관리 시스템VCS(Version Control System)을 사용한다.
VCS로 각 파일을 이전 상태로 되돌릴 수 있고, 프로젝트를 통째로 되돌릴 수 있고 시간에 따른 수정 내용을 비교해 볼 수 있다.

분산 버전 관리

DVCS 에서 클라이언트는 단순히 마지막 버전을 사용하지 않고 저장소를 히스토리와 더불어 전부 복제한다.
만약 서버에 문제가 생가면 복제물로 다시 작업을 시작할 수 있다.
Clone 는 모든 데이터를 가진 진정한 백업이다. git에서는 분산 버전 관리를 사용한다.

git의 데이터 관리

Git은 데이터의 델타를 관리하는게 아닌 데이터의 스냅샷을 관리한다.
또한 거의 모든 명령이 로컬에서 사용하기 때문에 굉장히 빠르게 버전관리를 할 수 있으며, 심지어 네트워크에 연결되어있지 않더라도 버전관리를 할 수 있다.

GIT

Git의 세가지 단계 

  • git directory : Git이 프로젝트의 메타데이터와 객체 데이터베이스를 저장하는 곳을 말한다. 이 Git 디렉토리가 Git의 핵심이다.
  • working directory : 소스 코드를 작업하는 영역으로 코드를 추가, 수정, 삭제하는 작업이 이루어지는 영역, Clone을 할 경우 로컬 호스트에 생기는 디렉터리가 working directory임 대게 로컬 물리 디렉토리를 얘기한다
  • Staging area : git directory안에 있는 단순한 파일이며, 커밋할 파일에 대한 정보를 저장한다. (index 라고도 한다) git directory에서 체크아웃을 하면 working directory가 생기며 여기서 수정후 stage 하면 stage area로 가게되고

파일의 상태 

워킹 디렉토리(로컬 볼륨)의 모든 파일은 Tracked(관리대상임, Git이 알고있음), Untracked(관리 대상이 아님) 파일로 나뉜다. 또한 Tracked는 Unmodified, Modified, Staged로 나뉜다. 이 세 상태는 git 프로젝트의 세 단계와 연결돼있다.

  • Untracked : git의 관리 대상이 아니다
  • Staged : git add 명령어로 커밋하기위해 Stage에 대기하는 상태
  • Unmodified : 커밋을 한 상태(가장 최신 버전)
  • Modified : 최신버전에서 수정을 한 후 아직 Stage 에 올리지 않은 상태