[Git] Git 개념

Wonhyun Kwon·2023년 5월 10일
0

Git

목록 보기
1/5
post-thumbnail

1. Git 이란?

컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 스냅샷 스트림 기반의 분산 버전 관리 시스템이다.
소프트웨어 개발에서 소스 코드 관리에 주로 사용되지만, 어떠한 파일 집합의 변경사항을 지속적으로 추적하기 위해 사용될 수 있다.
처음 개발한 사람은 '리누스 토르발스'이다. 리눅스 커널을 관리하는 기존 툴이 엉망인 것에 너무 불편함을 느끼는 바람에 직접 소스관리 툴을 만들고, 그 것이 현재 널리 알려진 분산형 버전 관리 시스템(VCS)인 Git이다.


2. 특징

  • 매우 빠른 속도
  • 분산형 저장소
  • 오픈 소스
  • 오픈 소스 개발의 특성상 여럿이 달려들어 자기 맘에 드는 걸 하기도 하며, 또한 뭘 하나 잘못 붙였다 이상한 걸 건드려 망하기 쉬운데, Git는 이런 환경의 특성에 맞게끔 잘 만들어져 있다.

3. 대표적인 저장소

  1. GitHub
    • 대표적인 무료 Git 저장소
  2. GitLab
    • 국내에선 다소 인지도가 낮은 무료 저장소
    • 비공개 저장소를 참여 인원 수에 관계없이 무제한으로 생성할 수 있다는 특징이 있다.

4. 로컬저장소? 원격저장소?

4-1. 개념

1) 로컬저장소
: Git은 기본적으로 '로컬저장소' 라는 이름으로 전체 데이터를 작업 폴더에 넣어 관리한다.
이 로컬저장소는 해당 작업자의 작업을 버전별로 저장하고 관리하는 중간 관리 역할도 하면서, 동시에 해당 작업자와 다른 작업자의 작업을 '각기 다른 사람의 로컬 저장소' 로 다원화 하는 역할도 가지고 있다.
짧게 '로컬(local)' 이라고 칭하기도 한다.

2) 원격저장소
: 로컬저장소에서 작업이 끝나면 해당 작업에 참여한 사람과 공유하는 목적과 동시에 작업물을 더욱 안전하게 보관하기 위해 재발행이 필요하다.
이 때 발행처는 '원격 저장소' 이며, 짧게 '리모트(remote)' 라고 불리운다.

3) 브랜치(branch)
: 모든 작업물이 모여 만들어진 최종 작업물을 보통 'main' 이라고 부른다.
이 main을 만들기 위해 기능 혹은 작업자 단위로 나누어 서로가 격리된 상태로 따로 개발 할 수 있는데 이를 'branch' 라고 부른다.
branch는 개발이 완료될 시 main과 합치고 해당 branch는 삭제시키는 가지치기를 할 수 있다.

4-2. 특징

  • 개발 중간중간 'tag' 를 매겨 버전을 관리할 수 있다.
  • 다른 branch끼리의 작업물을 합칠 수 있는 'merge' 기능을 통해 개발이 더욱 수월하다.
  • 이 모든 것을 체계적으로 관리할 수 있는 Github의 Pull request 플랫폼 별 Process flow를 제공한다.
profile
모든 사용자가 만족하는 UI를 만드는 FE 개발자 권원현입니다.

0개의 댓글