목차
1. 버전관리란?
2. Git의 목표
3. Git의 기초
4. CLI
5. 명령어
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 을 보면 한눈에 명령어를 볼 수있다.
Ref.
https://git-scm.com/book/ko/v2
GitHub Education
'Git' 카테고리의 다른 글
[Git] 커밋 메시지 수정하기 - git rebase (0) | 2020.03.06 |
---|---|
[Git] Remote branch 이름 변경하기 (1) | 2016.04.06 |
[Git] .gitignore 적용 안될 경우 해결방법 (0) | 2015.03.31 |