DVCS(분산 버전 관리 시스템)
git = 분산 버전 관리 시스템(Distributed Version Control System)
- 클라이언트가 저장소 통채로 복제
- 클라이언트가 마지막 스냅샷을 체크아웃하는 것이 아니다.
파일의 상태
Tracked 파일의 세 가지 상태
- modified: 파일을 수정했지만 아직 커밋하지 않은 상태
- staged: 파일을 수정해서 곧 커밋할 것이라고 표시한 상태
- committed: 데이터가 로컬 데이터베이스에 안전하게 저장된 상태
파일의 라이프사이클
작업 디렉토리(Working Directory)의 파일
- Untracked = 버전 관리 대상이 아닌 파일
- Tracked = 버전 관리 대상 파일
- Unmodified = 수정 안 한 파일
- Modified = 수정한 파일
- Staged = 커밋 직전의 파일 = Changes to be committed
Untracked, Modified 파일을 추가(add)한다는 것은 다음에 커밋할(Staged) 파일 목록에 추가한다고 생각해야 한다. 프로젝트에 파일을 추가한다는 뜻이 아니다. 그리고 Untracked 파일은 Staged 파일이 되기 때문에 자연스럽게 Tracked 파일이 된다.
설정
설정 파일
/etc/gitconfig
파일: 전역 설정~/.gitconfig
또는~/.config/git/config
파일: 사용자 설정.git/config
파일: 저장소 설정
설정의 우선순위는 역순이다.
사용자 정보
$ git config --global user.name "John Doe"
$ git config --global user.email "[email protected]"
git config --global
옵션으로 명령했기 때문에 우분투의 경우 사용자 설정 파일 ~/.gitconfig
에 다음 내용으로 저장된다.
cat .gitconfig
[user]
name = John Doe
email = johondoe@example.com