본문 바로가기
Git/Git 개념

[Git] Git 과 Github

by 볼링치는 개발자 2021. 1. 4.
반응형

Git이란?

Git은 로컬에서 소스코드를 효과적으로 관리하기 위해 개발된 분산형 버전 관리 시스템(VCS: Version Control System)입니다.

소스코드 및 파일 수정에 대한 버전을 관리해주는 시스템입니다.


Github란?

Github는 클라우드 시스템을 사용해 관리되는 버전 관리 시스템(VCS)입니다.

오픈소스를 무료로 사용할 수 있고, 전 세계 개발자들과 협업을 가능하게 해 줍니다.


Git과 Github

Git과 Github에 대한 내용을 한 문장으로 쉽게 써보면,

로컬 PC에서 Git으로 변경 이력 등 소스코드를 관리하고, Github에 업로드하여 공유할 수 있습니다.


Git을 사용하는 이유

Git을 사용하지 않고 하나의 파일에 대해 수정본을 저장할 때, 대부분의 사람들은 다음과 같이 저장하곤 합니다.

Git을 사용하지 않을때

이렇게 파일을 수정하면서 이름을 변경하는 방법은 쉬울 수 있지만, 어느 파일이 최신인지, 어떻게 구분해야 할지 모르고, 실수의 가능성도 크며 전체적인 파일에 대한 내용을 파악하기 힘들 수 있습니다.

또한 하나의 문서를 여러 명이 수정해야 한다고 하면, 각각 수정하는 부분과 내용이 달라 충돌이 생겨 문서가 뒤죽박죽이 될 수도 있습니다.

 

이런 문제를 해결해 주는 것이 바로 Git입니다.

Git은 다음과 같은 작업을 해줍니다.

  • 코드나 파일이 수정될 때마다 저장하고 백업하는 번거로운 작업
  • 변경 이력 확인
  • 특정 시점에 저장된 파일의 버전과 비교
  • 특정 시점으로 되돌아 가는 기능
  • 같은 문서를 편집하여 충돌이 발생하면 경고 메세지

Git의 동작과정

많은 사람들이 예상하는 것과 반대로 Git은 파일 자체를 저장하기보다, 파일의 수정 내역 자체를 저장합니다.

이러한 Git은 3가지 구성 요소를 가지고 있습니다

  • Working Directory: 작업하는 파일이 있는 로컬 디렉토리
  • Staging Area: 커밋(Commit)을 수행할 파일들이 올라가는 디렉토리
  • Git Directory: Git프로젝트의 메타 데이터와 데이터 정보가 저장되는 디렉토리

또한 Git으로 관리되는 파일은 3가지 상태를 가지고 있습니다

  • Modified: 원격 저장소에서 clone 되거나 새로 생성되어 수정된 파일
  • Staged: Working Directory의 파일을 git add 명령어로 Staging Area에 올린 파일
  • Committed: Staging Area의 파일을 git commit 명령어로 Local Repository에 올린 파일

위의 Git의 3가지 구성요소와 파일의 3가지 상태를 정리하면 다음과 같습니다.

Git구성 요소와 파일 상태

 

반응형

'Git > Git 개념' 카테고리의 다른 글

[Git] Git 용어 정리  (0) 2021.01.04

댓글