목차
1. 버전관리란?
2. Git의 목표
3. Git의 기초
4. CLI
5. 명령어

 

1. 버전관리란?

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

  • 로컬 버전 관리 시스템
  • 중앙집중식 버전 관리 시스템(CVCS)
    - CVS, Subversion, Perforce 같은 시스템은 파일을 관리하는 서버가 별도로 있고 클라이언트가 중앙 서버에서 파일을 받아서 사용(Checkout).
  • 분산 버전 관리 시스템(DVCS)
    - Git, Mecurial, Bazaar, Darcs 같은 DVCS에서의 클라이언트는 단순히 파일의 마지막 스냅샷을 Checkout 하지 않음. 저장소를 전부 복제
    - 리모트 저장소가 존재

 

 

2. Git의 목표

  • 빠른 속도
  • 단순한 구조
  • 비선형적인 개발(수천 개의 동시 다발적인 브랜치)
  • 완벽한 분산
  • Linux 커널 같은 대형 프로젝트에도 유용할 것(속도나 데이터 크기 면에서)
 

3. Git 기초

  • 차이가 아니라 스냅샷
    Subversion과 가장 큰 차이점은 데이터를 다루는 방법
    - Subversion: 각 파일의 변화를 시간순으로 관리하면서 파일들의 집합을 관리
    - Git: 데이터를 파일 시스템 스냅샷으로 취급하고 크기가 아주 작음. 데이터를 스냅샷의 스트림처럼 취급
  • 거의 모든 명령을 로컬에서 실행
  • Git의 무결성: 체크섬

- 데이터를 저장하기 전에 항상 체크섬을 구하고 그 체크섬으로 데이터를 관리
- Git에서 사용하는 가장 기본적인(Atomic) 데이터 단위이자 Git의 기본 철학
- SHA-1 해시를 사용하여 만듦
- 40자 길이의 16진수 문자열
- ex) 24b9da6552252987aa493b52f8696cd6d3b00373

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

 

 

4. CLI

Git을 사용하는 방법은 많지만 Git의 모든 기능을 지원하는 것은 CLI
GUI를 사용하려면 SourceTree 추천

 

 

5. 명령어

첨부파일에 있는 cheat sheet 을 보면 한눈에 명령어를 볼 수있다.

git-cheat-sheet-education.pdf
다운로드

 

 

 

Ref.
https://git-scm.com/book/ko/v2
GitHub Education

+ Recent posts