Git 개념과 구조

2023. 3. 24. 20:02개발/ETC

 

Git은 컴퓨터 파일의 어떤 집합에서도 변경사항을 추적하는 버전관리 시스템을 뜻한다.

 

Git에 대한 사견

예전에 근무했었던 회사에서 유지보수 및 신규로 투입된 프로젝트들은 모두 규모가 크고 오래된 프로젝트여서 Git을 사용하지 않고 SVN을 사용하였다. 

형상관리 툴마다 장단점이 있겠지만.. SVN을 사용하면서 느낀 단점은 상대적으로 Git에 비해 문제 발생시 추적이 어려웠던 것 같다. (아침마다 풀 받고 누가 이상한 파일을 올려서 프로젝트가 런 되지 않는건지 찾기 바빴다.)

그놈의 깃깃깃... Git에 대한 않좋은 추억만 가지고 있던 터라.. 조금 두렵긴 했지만 Git을 사용하지 않는 회사보단 사용하는 회사가 많기 때문에 이참에 Git을 정리하고 제대로 알아보는 시간을 가져보려 한다.

(잘못 올려서 갑자기 이전 버전으로 롤백 됬는데 브랜치 통해서 어떻게 해서 버전 살린 기억.. 어떻게 보면 안좋은 추억이라기 보다는 제대로 살렸기때문에 좋은 추억이 아닐까 싶기도.. )

 

Git은 크게 세가지 구성요소를 가진다.

  1. Working Directory: 작업 디렉토리는 프로젝트의 파일과 폴더가 포함되어 있는 로컬 내의 디렉토리를 뜻한다. 개발자들은 작업 디렉토리에서 파일을 생성, 수정, 삭제하고, 이를 Git에 추가하여 추적할 수 있다.
  2. Staging Area: 스테이징 영역은 변경된 파일들을 추적하고, 다음 커밋에서 스냅샷으로 저장할 준비가 된 파일을 표시하는 중간단계를 뜻한다. 
  3. Repository: 저장소는 Git이 추적하고 관리하는 프로젝트의 모든 변경 내용을 포함하는 데이터베이스! 모든 커밋, 브랜치, 태그 등의 정보가 저장되며, Git의 모든 기능은 저장소 내에서 작동합니다.

Working Directory  → Staging Area  (commit)→ Repository

워킹디렉토리의 파일 중에서 변동사항을 추적할 내용을 지정하여서 스테이징 에어리어에 할당한다.

이 추적 내용은 스테이징 에어리어에서 커밋을 통해 저장소에 저장된다.

커밋이 이루어지면 스냅샷을 생성하고 이러한 내용을 저장소에서 관리한다.

 

깃허브는?

Repository에 저장된 커밋내용을 Push를 하게 되면 로컬이 아니라 원격 저장소로 올라가게 된다. 이게 바로 깃허브~~!!!!