GIT#0

codataffee·2024년 5월 8일

GIT

목록 보기
1/5
post-thumbnail

개요

GIT 을 배워야 하는 이유

  • GIT은 프로젝트의 시간차원을 자유롭게 넘나들 수 있도록 해준다.

    • 시간 : 프로젝트의 버전을 과거로 되돌리거나 특정 내역을 취소할 수 있음.
    • 차원 : 프로젝트의 여러 모드를 쉽게 전환하고 관리할 수 있음.
  • GIT은 여러 사람들이 프로젝트에서 협업할 수 있도록 도와준다.


📌 GIT

GIT : 분산형 버전 관리 시스템 (Version Control System)의 한 종류, 빠른 수행 속도에 중점.

프로젝트를 진행할 때,
'project.ipynb' 라고 저장을 했다가 수정을 하면서
'project_final.ipynb' 로 저장하고 또 수정을 거치면서
'project_final_final.ipynb' ... 로 수정을 하게 되는 경우가 있을 것인데,
이처럼 파일을 복사, 백업, 저장 등을 하는 과정을 버전 관리라고 한다.


📌 버전 관리?

버전 관리 시스템은 파일변화를 시간에 따라 기록했다가 나중에
특정 시점의 버전을 다시 꺼내올 수 있는 시스템이다.

  • 각 파일을 이전 상태로 되돌릴 수 있다.
  • 프로젝트를 통째로 이전 상태로 되돌릴 수 있다.
  • 시간에 따라 수정 내용을 비교할 수 있다.
  • 누가 문제를 일으켰는지 추적할 수 있다.
  • 누가 언제 만들어낸 이슈인지 알 수 있다.
  • 파일을 잃어버리거나 잘못 고쳤을 때 쉽게 복구할 수 있다.

📌 GIT 의 장점

  • 소스 코드를 주고 받을 필요 없이, 같은 파일을 여러 명이 동시에 작업, 병렬 개발이 가능
    (브랜치를 통해 개발한 뒤, 본 프로그램에서 합치는 방식(Merge)으로 개발을 진행할 수 있다.)

  • 분산 버전 관리이기 때문에 인터넷이 연결되어 있지 않아도 개발이 가능하고,
    중앙 저장소가 날아가 버려도 원상복구 가능

  • 팀 프로젝트가 아닌, 개인 프로젝트에서도 GIT을 통한 버전 관리로 체계적인 개발이 가능,
    프로그램이나 패치를 배포하는 과정도 간단함

📌 기본 동작 원리

- 스냅샷
GIT 의 핵심 동작 원리는 '스냅샷'에 근거한다.
다른 버전 관리 시스템이 파일의 변경 부분만을 추적('델타'라고 한다.)하는 데 반해,

GIT은 시간 순서에 따른 파일의 전체 상태를 '스냅샷'으로 캡쳐한다.
즉, 특정 시점에서의 전체 모습을 기록하여 저장하고 있는 것이다.

- 동작 흐름

  1. 수정 (Modifiy) : 작업 디렉토리에서 파일을 수정

  2. 스테이지 (Stage) : 수정한 파일 중 커밋할 것들을 스테이징 영역에 추가

  3. 커밋 (Commit) :
    스테이징 영역에 추가된 변경사항들을 실제로 저장(커밋)하여 GIT 디렉토리에 기록


profile
커피 좋아하는 데이터 꿈나무

0개의 댓글