일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 안드로이드
- 스택
- 문자열
- 완전탐색
- 자바
- 트리
- 백준
- Android
- component
- 동적계획법
- 운영체제
- 다이나믹프로그래밍
- dfs
- 세그먼트트리
- 이분탐색
- 문자열다루기
- 알고리즘
- 프로그래머스
- 분할정복
- BOJ
- 배열
- 생명주기
- 코딩
- 카카오블라인드
- activity
- GIT
- BFS
- 그래프
- 코틀린
- 코딩테스트
- Today
- Total
HS_development_log
Git의 이해 및 사용 2 - Git 기초 본문
Git의 버전 관리 방법
1. Git과 다른 버전관리프로그램의 차이점
· CVS, Subversion, Perforce 등 시스템은 각 파일의 변화를 시간순으로 관리하면서 파일들의 집합을 관리
· 그러나 Git은 성능을 위해 이전상태의 파일에 대한 링크만저장, 데이터를 스냅샷의 스트림처럼 취급
※스냅샷이란? 과거에 한 때에 존재하고 유지시킨 컴퓨터파일과 디렉터리의 모임. 쉽게말해 잘못 지워지거나 날라간 파일을 복구할수 있는 기능
· 시간순으로 프로젝트의 스냅샷을 저장한다.
2. Git은 거의 모든 명령을 로컬에서 실행 한다!
· 모든 명령이 로컬 파일과 데이터만 사용하기 때문에 네트워크에 다른 컴퓨터는 필요없음
· 프로젝트의 모든 히스토리가 로컬 디스크에 있기때문에 모든 명령이 순식간에 실행됨
· 오프라인 상태이거나 VPN에 연결하지못해도 커밋할수 있음
3. Git의 무결성
· Git은 데이터를 저장하기전에 항상 체크섬을 구하고 체크섬으로 데이터 관리
· 체크섬을 이해하는 Git 없이는 어떠한 파일이나 디렉토리도 변경 불가
· 체크섬은 Git에서 사용하는 가장 기본적인 데이터 단위이자 Git의 기본철학
· Git은 SHA-1 해시를 사용하여 체크섬을 만듬
· 실제로 Git은 파일을 이름으로 저장하지않고 해당 파일의 해시로 저장
※체크섬이란? 체크섬(checksum)은 중복 검사의 한 형태로, 오류 정정을 통해, 공간(전자 통신)이나 시간(기억 장치) 속에서 송신된 자료의 무결성을 보호하는 단순한 방법.
4. Git의 세가지 상태(중요)
· Git은 파일을 Committed, Modified, Staged 이렇게 세 가지 상태로 관리
· Committed란 데이터가 로컬 데이터베이스에 안전하게 저장됐다는 것을 의미.
· Modified는 수정한 파일을 아직 로컬 데이터베이스에 커밋하지 않은 것을 말함.
· Staged란 현재 수정한 파일을 곧 커밋할 것이라고 표시한 상태를 의미.
· Git 디렉토리는 Git이 프로젝트의 메타데이터와 객체 데이터 베이스를 저장하는 곳
· 다른 컴퓨터에 있는 저장소를 Clone 할 때 Git 디렉토리가 만들어진다
· 워킹트리는 프로젝트의 특정 버전을 Checkout 한 것
· Git 디렉토리는 지금 작업하는 디스크에 있고 그 디렉토리 안에 압축된 데이터베이스에서 파일을 가져와서 워킹 트리를 만듬
· Staging Area는 Git 디렉토리에 있다. 단순한 파일이고 곧 커밋할 파일에 대한 정보 저장
· Git에서는 기술용어로 "Index" 라고 함
정리
1. 워킹 트리에서 파일을 수정
2. Staging Area에 파일을 Stage 해서 커밋할 스냅샷을 만듬. 선택된 파일 및 전체파일을 추가 가능
3. Staging Area에 있는 파일들을 커밋해서 Git 디렉토리에 영구적인 스냅샷으로 저장
· Git 디렉토리에 있는 파일은 Committed 상태
· 파일을 수정하고 Staging Area 에 추가했다면 Staged
· Checkout 하고나서 수정했지만, 아직 Staging Aread에 추가안했으면 Modified
참고사이트 :
1. https://ko.wikipedia.org/wiki/%EC%B2%B4%ED%81%AC%EC%84%AC
2. https://git-scm.com/book/ko/v2/%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-Git-%EA%B8%B0%EC%B4%88
'Git' 카테고리의 다른 글
Git의 이해 및 사용 3 - 브랜치란 무엇인가? (0) | 2020.01.15 |
---|---|
Git의 이해 및 사용 1 - 버전관리 및 Git의 목표 (0) | 2020.01.14 |