1. 시작하기 - ProGit |
1.1. 버전 관리란?
* 로컬 버전 관리
-
로컬 VCS (Version Control System) 으로 RCS(Revision Control System)이 많이 쓰인다.
RCS 는 기본적으로 Patch Set(파일에서 변경되는 부분)을 관리한다.
* 중앙집중식 버전 관리 (CVCS)
-
마지막 스냅샷만을 checkout 한다.
그래서 중앙 서버에 문제가 생기면 프로젝트의 모든 히스토리를 잃을 수 있다.
* 분산 버전 관리 시스템(DVCS)
-
Git, Mercurial, Bazaar, Darcs 등이 있다.
DVCS 에서의 클라이언트는 단순히 파일의 마지막 스냅샷을 checkout 하지 않는다.
그냥 저장소를 전부 복제한다.
서버에 문제가 생기면 이 복제물로 다시 작업을 할 수 있고, 클라이언트 중에서 아무거나 골라도 서버를 복원할 수 있다.
1.2. 짧게 보는 Git 의 역사
-
Linux 커널 개발시 2002년에 BitKeeper 라는 상용 DVCS 를 사용했다.
2005년에 커뮤니티가 만드는 리눅스 커널과 이익을 추구하는 회사가 개발한 BitKeeper 간의 관계가 틀어졌다. BitKeeper 를 더 이상 무료로 사용할 수 없게 되었다.
그래서 Git 을 만들기 시작했다.
1.3. Git 기초
* 차이가 아니라 스냅샷
* 거의 모든 명령을 로컬에서 실행
-
프로젝트의 모든 히스토리가 로컬 디스크에 있기 때문에 모든 명령을 순식간에 실행한다.
예를 들어 Git 은 프로젝트의 히스토리를 조회할 때 서버 없이 조회한다.
그냥 로컬 DB 에서 히스토리를 읽어서 보여 준다.
* Git 의 무결성
-
Git 은 데이터를 저장하기 전에 항상 체크섬을 구하고 그 체크섬으로 데이터를 관리한다.
그래서 체크섬 없이는 어떠한 파일이나 디렉터리도 변경할 수 없다.
체크섬은 Git 에서 사용하는 가장 기본적인(atomic) 데이터 단위이자 Git 의 기본 철학이다.
-
Git 은 SHA-1 해시를 사용하여 체크섬을 만든다.
만든 체크섬은 40자 길이의 16진수 문자열이다.
파일의 내용이나 디렉터리 구조를 이용하여 체크섬을 구한다.
그리고 Git 은 모든 것을 해시로 식별하기 때문에 이 해시값은 이곳저곳서 보인다.
실제로 Git 은 파일을 이름으로 저장하지 않고 해당 파일의 해시로 저장한다.
* Git 은 데이터를 추가할 뿐
* 세 가지 상태
-
Git 은 파일을 Committed, Modified, Staged 이렇게 세가지 상태로 관리한다.
Committed 란 데이터가 로컬 DB 에 안전하게 저장됐다는 것을 의미한다.
Modified 는 수정한 파일을 아직 로컬 DB 에 커밋하지 않은 것을 말한다.
Staged 란 현재 수정한 파일을 곧 커밋할 것이라고 표시한 상태를 의미한다.
-
Git 디렉터리는 Git 이 프로젝트의 메타데이터와 객체 DB 를 저장하는 곳을 말한다.
이 Git 디렉터리가 Git 의 핵심이다.
-
워킹 디렉터리는 프로젝트의 특정 버전을 checkout 한 것이다.
Git 디렉터리는 지금 작업하는 디스크에 있고 그 디렉터리 안에 압축된 DB 에서 파일을 가져와서 워킹 디렉터리를 만든다.
1.4. CLI
1.5. Git 설치
1.6. Git 최초 설정
-
git config 라는 도구로 설정 내용을 확인하고 변경할 수 있다.
설정 파일은 세 가지가 있다.
1. /etc/gitconfig : 시스템의 모든 사용자와 모든 저장소에 적용되는 설정이다. git config --system 옵션으로 읽고 쓴다.
2. ~/.gitconfig, ~/.config/git/config : 특정 사용자에게 적용되는 설정. git config —global 옵션으로 읽고 쓴다.
3. .git/config : Git 디렉터리에 있고 특정 저장소에만 적용된다.
돼왕 : 위의 path 는 folder 가 아니라 파일이다.
각 설정은역순으로 우선시된다.
.git/config 가 /etc/gitconfig 보다 우선시된다.
* 사용자 정보
-
$ git config —global user.name “UserName”
$ git config —global user.email “emailAddress”
돼왕 : 이 사용자 정보는 commit 할 떄마다 사용된다.
* 편집기
-
기본적으로 Git 은 시스템의 기본 편집기를 사용하고 보통 Vi 나 Vim 이다.
Emacs 와 같은 다른 텍스트 편집기를 사용할 수 있고, 아래와 같이 실행하면 된다.
$ git config —global core.editor emacs
* 설정 확인
-
git config —list 명령을 실행하면 설정한 모든 것을 보여준다.
-
Git 은 같은 키를 여러 파일 (/etc/gitconfig, ~/.gitconfig 같은)에서 읽기 떄문에 같은 키가 여러 개 있을 수도 있다.
그러면 Git 은 나중 값을 사용한다.
-
아래와 같은 특정 key 값만도 확인할 수 있다.
$git config user.name
1.7. 도움말 보기
-
syntax 는 아래와 같다.
$ git help <verb>
$ git <verb> —help
$ man git <verb>
사용 예는...
$ git help config
1.8. 요약
'프로그래밍 놀이터 > Tips' 카테고리의 다른 글
[도서 정리] 2. Git 의 기초 #2 - ProGit (0) | 2020.01.06 |
---|---|
[도서 정리] 2. Git 의 기초 #1 - ProGit (0) | 2020.01.05 |
[도서 정리] 부록A. 많이 쓰는 앱과 언어에서 활용하는 정규식 - 손에 잡히는 10분 정규 표현식 (0) | 2020.01.03 |
[도서 정리] 11. 정규 표현식으로 해결하는 일반적인 문제들 - 손에 잡히는 10분 정규 표현식 (0) | 2020.01.02 |
[도서 정리] 10. 조건 달기 - 손에 잡히는 10분 정규 표현식 (0) | 2020.01.01 |
댓글