4. GIT Overview
• Distributed (각자가 자신의 로컬 저장소를
갖음)
– SCM (Software Configuration Management)
– or Source Code Management System
– or Revision(Version) Control System
• Started from 2005
• Strong safeguards against corruption
• Developed by Linus Torvalds
– 리눅스를 개발하며 생긴 공동 개발 문제 해결
노력
5. 장점
• 모든 저장소 정보가 최상위 디렉토리에
폴더 형태로 저장됨.
– 저장소의 복사/이동이 자유로움
– 기타 많은 장점 ㅡㅡ
10. GIT Concept
Remote Object Database
(원격지의 저장소) Blob: 파일 내용
Tree: 디렉토리
Commit: 커밋 정보
Tag: 추가 정보
Staging Area
다음에 커밋 될
Local 파일들을 추가, 캐쉬
(자신의 PC) 해놓음
11. 로컬 저장소
• 로컬 저장소가 존재
– 네트워크가 연결되지
않아도 버전관리 가능
• 로컬에서의 상태
1. 수정됨 : Modified 상태
(working directory)
2. 수정되고 추가됨 : Staged
상태 (staging area)
3. Commit 됨 : Commited 상태
(git directory)
12. git 따라해 보기 (로컬)
• Try GIT
– http://www.codeschool.com/courses/try-git
• git init : git 저장소(.git 디렉토리)생성
• git status : 현재 상태 보기
• git add [파일이름] : 해당 파일을 stage
area에 추가
• git commit –m “커밋 코멘트” : stage area 의
내용을 로컬 저장소에 커밋
14. git 따라해 보기(원격지 포함)
• git remote add origin [원격지주소] : 원격지에 있는 저장소를 추가 (여기서는
origin이라는 이름으로 원격지 주소를 설정)
• git push –u origin master : 현재 로컬저장소 브랜치(master)를 위에서 설정한
origin 의 주소에 밀어 넣음(저장)
– u 옵션은 설정을 저장하여 다음에는 git push로 같은 동작이 가능
• git pull origin master: 원격지인 origin 으로 부터 변경된 내용을 로컬의 master
브랜치로 가저옴
• git diff HEAD : working 디렉토리와 로컬 저장소의 HEAD 위치 (가장 최근
커밋)에서의 차이점 보여줌
• git diff --staged : staged 영역과 저장소의 HEAD 위치와의 차이점을 보여줌
• git reset [파일이름] : 스테이지 영역에 추가된 사항을 되돌림. 워킹
디렉토리에는 변경이 없음.
• git branch [브랜치 이름] : 새로운 로컬 브랜치를 만듬
• git checkout [브랜치 이름] : 해당 브랜치로 작업 대상을 변경함
• git rm [파일이름] : 해당 파일들을 제거 (워킹디렉토리와 스테이지 영역에서
모두 제거)
• git fetch origin : 원격 저장소에서 패치를 가져옴
• git merge [ 브랜치 이름] : 현재 브랜치와 명시한 브랜치와 합침
• git branch –d [ 브랜치 이름] : 명시한 브랜치를 제거함