본문 바로가기
공부(~2016)/Git

Git 기본

by soy; 2014. 10. 2.

Git의 기본 특성

분산 버전 컨트롤 시스템 (DVCS)

- 클라이언트가 파일의 마지막 스냅샷을 checkout 하는 것이 아니라, 저장소를 전부 복제한다.

- 서버에 문제가 생기면 클라이언트 중 하나 가져다가 서버를 복원할 수 있음.


델타가 아니라 스냅샷을 통한 버전 관리

- 각 버전이 각 파일에 대한 변화(델타)를 저장하는 일반적인 VCS과는 달리, 전체 파일 시스템의 현재 상태의 스냅샷을 저장함.

- 파일이 달라지지 않았으면 이전 상태의 파일에 대한 링크만 저장함.


거의 모든 명령을 로컬에서 실행함

- 프로젝트의 모든 히스토리가 로컬 디스크에 있기 때문에 실행 속도가 빠름

- 오프라인에서도 작업 가능


해시를 통한 무결성

- 모든 데이터를 저장하기 전에 해시를 구하고, 해시로 데이터를 관리함

- 40자 길이의 16진수 문자열이며, 파일의 내용이나 디렉토리 구조를 이용하여 생성함

- git은 모든 것을 해시로 식별, 파일을 이름으로 저장하지 않고 해당 파일의 해시로 저장함.

- git 없이는 해시값을 알 수 없으므로 데이터를 알지도 잃어버릴 수도 없음


git은 데이터를 추가할 뿐

- git으로 무엇을 하든 데이터를 추가함.

- 되돌리거나 데이터를 삭제할 방법이 없음.



Git의 세 가지 상태 

local 에서의 세 가지 area

- working directory: 프로젝트의 특정 버전을 git 디렉토리로부터 checkout 한 것. 로컬 작업은 여기서 이루어진다.

- staging area: 의미상으로는 area 이나, 단순한 파일로 이루어져 있다. 곧 커밋 할 파일들에 대한 정보를 저장한다.

- git directory: local 저장소. 프로젝트의 메타데이터와, 압축된 파일들을 저장한다. 다른 컴퓨터에 있는 저장소를 clone 할 때 생성된다.


파일의 상태

- untracked: git의 스냅샷에 존재하지 않는, 관리 대상이 아닌 파일. 새로 생성한 파일은 untracked 이다. git add 하면 tracked 상태로 바뀐다.

- unmodified : tracked 상태이나, 수정 사항이 없는 상태. 즉 스냅샷의 파일과 워킹 디렉토리 내의 파일 내용이 동일한 상태.

- modified: 워킹 디렉토리에서 파일을 수정한 상태.

- staged: 워킹 디렉토리에서 수정한 파일을 stage area에 추가한 상태. git add 명령어로 추가할 수 있다. 커밋할 스냅샷을 만들기 위한 중간 상태.

- commited: stage area에 있는 파일을 커밋해서 git 디렉토리에 영구적인 스냅샷으로 저장한 상태 => 커밋 후에는 다시 unmodifed 상태가 됨.



Git 설치 in Mac

https://code.google.com/p/git-osx-installer/



Git 초기 설정

'git config' 명령어로 설정 내용을 확인하고 변경할 수 있다. 이 때 사용하는 설정 파일은 세 가지가 있는데, 범위가 작은 설정 순으로 우선순위가 높다.

- 우선순위 3)  /etc/gitconfig: 시스템의 모든 사용자와 모든 저장소에 적용되는 설정. git config --system

- 우선순위 2) ~/.gitconfig: 현재 사용자에게만 적용되는 설정. (home 디렉토리 하위에 있으므로..)  git config --global

- 우선순위 1)  .git/config: git 디렉토리에 있는 파일. 특정 저장소 혹은 현재 작업중인 프로젝트에만 적용되는 설정.  


사용자 정보 설정

git config --global user.name "so"

git config --global user.email so@so-blog.net


설정 확인

git config --list : 설정한 모든 것을 보여줌

git config {key} : 해당 key에 대한 설정값을 보여줌 (예: git config user.name)



Git 도움말 보기

git help 명령어   /    git 명령어 --help   /   man git-명령어

- 예: git help config 를 실행하면 config 명령에 대한 도움말을 볼 수 있음.



태그

댓글0