[ProGit] 1. 시작하기

KIM KYUBIN·2022년 8월 31일
0

ProGit

목록 보기
1/3

1.1 버전관리란?

  • 버전 관리 시스템(VCS - Version Control System) : 파일 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 꺼내올 수 있는 시스템

1.1.1 로컬 버전 관리

  • 로컬 VCS : 간단히 데이터베이스를 사용해서 파일의 변경 정보를 관리하는 시스템
  • 아주 간단하지만 실수를 하기가 쉽다.

1.1.2 중앙집중식 버전 관리

  • 중앙집중식 버전 관리(CVCS - Centralized VCS) : 서버가 별도로 있고 클라이언트가 중앙 서버에서 파일을 받아서 사용(Checkout)하는 방식
  • 로컬 VCS보다 관리가 쉽다는 장점이 있지만 중앙 서버에 문제가 발생한다면 치명적이라는 단점 존재

1.1.3 분산 버전 관리

  • 분산 버전 관리(DVCS - Distributed VCS) : 단순히 파일의 마지막 스냅샷을 Checkout 하지 않고 저장소를 히스토리와 더불어 전부 복제하는 방식
  • 서버에 문제가 생기면 이 복제물로 다시 작업 시작 가능
  • 클라이언트 중에서 아무나 서버 복원 가능
  • 많은 수의 리모트 저장소를 가질 수 있기 때문에 다양한 방법으로 협업 가능

1.3 Git 기초

1.3.1 차이가 아니라 스냅샷

  • 대부분의 VCS 시스템은 각 파일의 변화를 시간순으로 관리하면서 파일들의 집합을 관리

  • 그러나, Git은 이전 상태의 파일에 대한 링크만 저장해서 스냅샷의 스트림처럼 취급하여 관리

스냅샷❓

  • 변경된 파일 전체를 저장하지 않고, 파일에서 변경된 부분을 찾아 수정된 내용만 저장하는 기술

1.3.2 거의 모든 명령을 로컬에서 실행

  • 거의 모든 명령이 로컬 파일과 데이터만 사용하기 때문에 네트워크에 있는 다른 컴퓨터는 불필요

1.3.3 Git의 무결성

  • Git은 데이터를 저장하기 전에 항상 체크섬을 구하고 그 체크섬으로 데이터를 관리
  • 그래서 체크섬을 이해하는 Git 없이는 어떠한 파일이나 디렉토리도 변경 불가
  • Git은 파일을 이름으로 저장하지 않고 해당 파일의 해시로 저장

1.3.4 Git은 데이터를 추가할 뿐

  • Git으로 무엇을 하든 Git 데이터베이스에 데이터가 추가된다.

1.3.5 세 가지 상태

  • Git은 파일을 Committed, Modified, Staged의 세 가지 상태로 관리
    • Committed : 데이터가 로컬 데이터베이스에 안전하게 저장됐다는 것을 의미
    • Modified : 수정한 파일을 아직 로컬 데이터베이스에 커밋하지 않은 것을 의미
    • Staged : 현재 수정한 파일을 곧 커밋할 것이라고 표시한 상태를 의미

  • Git 프로젝트의 세 가지 단계

    • Git directory : Git이 프로젝트의 메타데이터와 객체 데이터베이스를 저장하는 곳
    • Working Directory : 프로젝트의 특정 버전을 Checkout 한 것
    • Staging Area : 단순한 파일이고 곧 커밋할 파일에 대한 정보를 저장하는 곳
  • Committed 상태 : Git 디렉토리에 있는 파일들

  • Modified 상태 : 아직 Staging Area에 추가하지 않은 상태(수정 전 상태 : Working Directory에 위치)

  • Staged 상태 : 파일을 수정하고 Staging Area에 추가

1.6 Git 최초 설정

1.6.1 사용자 정보

  • Git을 설치하고 나서 가장 먼저 해야 하는 것은 사용자이름과 이메일 주소를 설정하는 것
$ git config --global user.name "사용자이름"
$ git config --global user.email "이메일주소"

1.6.3 설정 확인

  • 전체 config 리스트 확인
$ git config --list

참조
https://git-scm.com/
https://yoongrammer.tistory.com/17

profile
상상을 현실로 만들기 위해 노력하는 개발자

0개의 댓글