프로젝트 생산성

[Git] 개발자 필수 도구, Git이 뭔데?

:) :) 2024. 9. 11. 14:59

Git이란?

Git은 소스코드나 파일의 변화를 추적하는 버전 관리 시스템(VCS, Version Control System)입니다.

Git의 설계 목표는 다음과 같습니다.

  • 빠른 속도
  • 데이터 통합
  • 분산 구조
  • 비 선형적 개발 ( 여러 컴퓨터에서 동시에 유지하는 수천개의 브랜치들을 생각해봐요. )

 

 

Git을 사용하는 이유

Git을 사용하면 버전 관리가 쉬워집니다.

프로젝트를 진행하면 잦은 업데이트로 인해 변화가 생기는데,

이 때마다 다른 디렉토리로 프로젝트를 따로 저장하는 게 아니라

Git을 통해 똑같은 프로젝트 디렉토리에서 버전 관리를 할 수 있게 합니다.

 

 

Git이랑 GitHub는 달라요

Git은 버전 관리 시스템이고,

GitHub는 Git으로 관리하는 프로젝트를 올려둘 수 있는 원격 저장소입니다.

 

 

분산형 버전 관리 시스템(DVCS)으로써의 Git

Git은 분산형 버전 관리 시스템이고, 다음과 같은 특징을 가집니다.

  1. 중앙 서버에 의존하지 않습니다.
    1. 각 개발자는 프로젝트의 전체 히스토리를 포함한 완전한 복사본을 자신의 컴퓨터에 가지게 됩니다.
    2. 모든 개발자가 프로젝트의 완전한 백업을 가지고 있는 것이랑 동일합니다.
  2. 네트워크 독립성
    1. 원격 저장소 작업을 제외한 대부분을 오프라인에서 수행할 수 있습니다.
  3. 병렬 작업
    1. 여러 개발자는, 동시에 여러 브랜치에서 작업할 수 있습니다.
  4. 백업
    1. 모든 클론은 사실상 전체 저장소의 백업 역할을 합니다.

 

 

Git의 기본 작업 흐름 익히기

보통은 Git을 다음과 같이 사용해요.

  • 특정 작업을 수행하면 변경 이력이 생겨요.
  • git add 명령어로 변경 이력을 git이 유지할 수 있게 한 뒤,
  • git commit 명령어를 통해 변경 이력을 현재 저장소에 반영합니다.
    • 반영되지 않은 변경 이력은 보통 git status로 확인해요.

이러한 흐름은 Git의 세 가지 영역을 따라 진행됩니다.

  • working directory (작업 디렉토리)
    • 실제 작업을 하는 프로젝트 디렉토리입니다.
  • staging area
    • git add 명령어를 통해 변경 이력을 유지하게 되는 영역입니다.
  • repository (저장소, 레포)
    • git commit을 통해 변경 이력이 반영되는 장소에요.
    • 다시 말해, commit들이 저장되는 영역입니다.

 

 

로컬 저장소, 원격 저장소

Git init 명령어를 통해

내 컴퓨터 속 프로젝트 디렉토리를 git 저장소로 만들면,

해당 디렉토리가 바로 로컬 저장소(Local Repository)가 됩니다.

.git 폴더를 포함하는 실제 Git 저장소에요.

내 컴퓨터에 존재하는 프로젝트를, 다른 사람들과 같이 작업하려면

공통된 작업 공간이 필요합니다.

그래서 내 컴퓨터에서 벗어난 다른 원격의 저장소를 두고, 해당 저장소를

모든 사람과 같이 공용으로 사용하는 것입니다.

이렇게 사용되는 원격 저장소가 바로 Github입니다.

 

 

 

다음 글

 

[Git] Git 내부 구조 알아보기, objects - commit, blob, tree

[ 이전 포스트 ]  [Git] 개발자 필수 도구, Git이 뭔데?Git이란?Git은 소스코드나 파일의 변화를 추적하는 버전 관리 시스템(VCS, Version Control System)입니다.Git의 설계 목표는 다음과 같습니다.빠른 속

300-29-1.tistory.com