본문 바로가기
🛠️DevTools/Git

[Git] Git이란?

by inbeom 2023. 8. 27.
728x90

💡 Git이란, 버전 관리 시스템(Version Control System, VCS)의 하나이다.

쉽게 말하면, 말 그대로 '버전'을 관리할 수 있는 수단이다. 수정 사항이나, 업데이트 사항 등을 그때 그때 바로 반영 할 수 있도록 하는 시스템을 말한다.

 

버전 관리 시스템이란 무엇인가?

  • 버전 관리 시스템(VCS)은 파일 내 변화를 시간의 흐름에 따라 기록했다가, 이후 필요한 상황에서 그 파일을 꺼내올 수 있는 시스템을 말한다.
  • 버전 관리 시스템을 활용하면 동일한 정보에 대한 여러 버전을 관리하게 되며, 버전을 통해 시간에 따른 변경 사항 및 변경자를 확인 할 수 있다.
  • 더불어, 이전 버전으로 돌아갈 수 있고, 다시 원래 버전으로 돌아올 수도 있으며 누가 문제를 일으켰는 지도 쉽게 파악 할 수 있다.

 

로컬 버전 관리 시스템 (Local VCS)

  • 로컬 버전 관리 시스템에서는 'RCS (Revision Control System)을 활용한다.
  • RCS는 기본적으로 'Patch Set(파일에서 변경되는 부분)'을 관리하며, 이 Patch Set을 통해 모든 파일을 특정한 시점으로 되돌릴 수 있다.

 

중앙 집중식 버전 관리 시스템 (Centralized VCS - CVCS)

  • 중앙 집중식 버전 관리 시스템은 프로젝트 진행 중, 다른 개발자와 협업을 진행해야 할 때 사용한다.
  • 파일 관리를 위한 서버가 별도로 존재하고, 클라이언트가 중앙 서버에서 파일을 받아서 사용한다.

 

분산 버전 관리 시스템 (Distributed VCS)

  • 분산 버전 관리 시스템은 개발자들이 독립적(분산된)으로 작업한 다음에 변경 사항을 병합할 수 있기 때문이다.
  • 저장소를 히스토리와 더불어 전부 복제하는 방식이며, ‘깃’이 분산 버전 관리 시스템에 속한다.

 

✔️ Git은 로컬에서 버전 관리 시스템을 운영하는 방식이고, Github는 '깃 허브'자체에서 제공해주는 클라우드 서버를 이용한다.

✔️ Git을 사용하면 다른 개발자들과 손 쉽게 코드를 주고 받을 수 있으며, 여러 명이 동시에 한 코드를 가지고 작업하는 병렬적인 작업의 진행이 가능하다.

 

 

Git의 주요 개념

  1. Repository (저장소) : 소스 코드들이 저장되어 있는 물리적인 공간을 의미한다. 저장소를 통해서 작업자가 진행, 변경했던 사항들에 대해 알 수 있다.
  2. Working Tree : 흔히 우리가 사용하는 '폴더'를 말한다.
  3. Index (Staging Area) : Commit을 실행하기 전의 저장소와 Working tree 사이에 존재하는 공간을 말한다. Working Tree -> Index -> Commit 순의 절차를 거친다.
  4. Commit : 작업 과정들에 대한 점검을 마친 뒤, 저장소에 남기는 과정을 의미한다. git log라는 명령어를 통해 커밋된 사항들에 대해 확인 할 수 있다.
  5. Checkout : 특정 시점이나 branch의 소스 코드로 이동하는 것을 의미한다. 이 과정을 통해 과거 여러 시점의 소스 코드로 이동할 수 있다.
  6. Branch : Commit 단위로 구분된 소스 코드 타임라인에서 분기해서 새로운 commit을 쌓을 수 있는 가지를 만드는 것을 말한다. Branch에서 작업을 완료하면, Merge 작업을 수행한다.
  7. Merge : Branch와 Branch의 내용을 합치는 작업, 즉 병합을 말한다.

728x90

'🛠️DevTools > Git' 카테고리의 다른 글

[Git] .gitignore 사용법  (0) 2023.08.27
[Git] Git 명령어  (0) 2023.08.27
[Git] Fork. Repository변경사항 업데이트  (0) 2023.08.27
[Git] Git과 Github의 차이  (0) 2023.08.27
[Git] 에러노트  (0) 2023.08.27