- Git이란 ?
: 프로젝트의 어떤 부분도 겹쳐 쓰지 않게 프로젝트의 변경을 관리하는 버전 관리 소프트웨어
시간에 따라 파일의 변화를 기록하고 나중에 특정 시점의 버전을 다시 꺼내오게 한다.
git은 local version control이 가능하다.
기본 용어
- 저장소(repository)
- 작업 디렉토리(Working directory)
- add
- commit
- 인덱스(Index) = staging area
- branch
- merge
- push
- pull
1) 저장소
: 원하는 폴더(예제 : tutorial)에 접근한 후 'git init' 명령어를 통해 새로운 git 저장소 생성
(추가 사항 : 'git config --global user.name' 과 'user.email'을 설정해준다.
명령어 '.git'
저장소에 필요한 설정 파일이 존재
- description : GitWeb 프로그램에서 사용
- config : 설정 옵션
- info : 무시할 파일의 패턴 존재, git으로 관리
- hooks : 클라이언트/서버 훅을 넣음
%git hook : 어떤 이벤트가 생겼을 때 자동으로 특정 스크립트가 실행되는 것
- objects : 모든 컨텐트를 저장하는 데이터베이스
- refs : commit 개체의 포인터를 저장
- head : 현재 checkout한 브랜치를 가리킴
- index : staging area의 정보 저장
2) 작업 디렉토리 (Working directory)
- 'git add'를 통해 hong.c 파일을 staging area로 이동을 시킨다.
- 'git commit'을 통해 로컬 저장소로 commit을 시킨다.
% '-m' 명렁어로 commit에 대한 comment를 작성할 수 있다.
#git log
: 'git log'를 통해 commit 확인
: log는 최신순부터 확인
3) add
- 'git add'를 통해 hong.c 파일을 staging area로 이동을 시킨다.
- 파일 상태
# staging area : hong.c
# working directory : news.c
4) 인덱스 (index) = staging area
- staing area의 hong.c를 commit하면 local 저장소로 이동
- commit은 staging area에 존재하는 파일만 commit
% news.c는 commit 되지 않음
5) branch 생성 및 변경
- git branch [branch 이름] 명령어를 이용해 새로운 브랜치를 작성한다.
- git checkout 명령어를 이용해 사용할 브랜치로 전환한다.
# git branch : 브랜치 목록 전체를 확인할 수 있다.
# git checkout -b : branch를 만들면서 checkout까지 한 번에 할 수 있는 명령어
6) branch 삭제
- 기존에 존재하는 branch를 'git branch -d' 명령어로 삭제
7) merge
- 여러 개의 branch를 하나로 모을 때 사용한다.
- 변경 내용의 이력이 모두 남아 있다.
# git merge [병합할 branch 이름] 명령어를 사용
# merge 전, HEAD가 가리키는 branch를 지정 -> git checkout 명령어로 branch 변경
# HEAD는 현재 사용 중인 branch를 가리킨다.
8) tag
- 태그는 특정 commit에 대한 포인터
- Lightweight
# 단순 태그
- Annotated
# 태그 만든 사람 이름, 이메일, 날짜, 메시지 등의 정보 저장
'etc.. > SCM(source code management' 카테고리의 다른 글
Subversion 정리 (0) | 2016.05.18 |
---|---|
Github 에 대해서 (0) | 2016.05.17 |