git basic2 chaos

18
GIT From Basic to Chaos Yunkyu Choi 2013/Mar/05

Upload: yunkyu-choi

Post on 20-Jul-2015

554 views

Category:

Documents


3 download

TRANSCRIPT

GIT

From Basic to Chaos

Yunkyu Choi2013/Mar/05

Contents

Basic & Chaos

BASIC

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

– 리눅스를 개발하며 생긴 공동 개발 문제 해결

노력

장점

• 모든 저장소 정보가 최상위 디렉토리에

폴더 형태로 저장됨.

– 저장소의 복사/이동이 자유로움

– 기타 많은 장점 ㅡㅡ

분산(Distributed) 저장소

Centralized Distributed

Remote

Local Local

Git Snapshot

Git 은 각 버전의 모든 정보를 저장함

다른 시스템들은 차이점만 저장

Others

GIT

WORKING WITH GITFirst Step

Install and Setting

• Install

– http://git-scm.com/book/en/Getting-Started-Installing-Git

• Setting

– http://git-scm.com/book/en/Getting-Started-First-Time-Git-Setup

GIT Concept

Object DatabaseBlob: 파일 내용

Tree: 디렉토리

Commit: 커밋 정보

Tag: 추가 정보

Staging Area다음에 커밋 될

파일들을 추가, 캐쉬

해놓음

Remote(원격지의 저장소)

Local(자신의 PC)

로컬 저장소

• 로컬 저장소가 존재– 네트워크가 연결되지

않아도 버전관리 가능

• 로컬에서의 상태1. 수정됨 : Modified 상태(working directory)

2. 수정되고 추가됨 : Staged상태 (staging area)

3. Commit 됨 : Commited 상태(git directory)

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 의내용을 로컬 저장소에 커밋

GIT Concept (Detailed, Remote포함)

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 [ 브랜치 이름] : 명시한 브랜치를 제거함

ADVANCEDStep into Chaos

GIT Branching

• 인터렉티브 학습툴

– http://pcottle.github.com/learnGitBranching/?demo

• Git 사용 가이드

– http://www.slideshare.net/dhrim/git-12030742

• 헷갈리지만 하다보면 뭔가 감이 잡힘

기타

• Git Ref– http://rogerdudler.github.com/git-guide/index.ko.html– http://www.hanb.co.kr/network/view.html?bi_id=1664– http://devcheatsheet.com/tag/git/?page=1

• Git hosting– mac

• http://www.makebetterthings.com/git/install-gitlabhq-with-gitolite-on-mac-os-x-server-mountain-lion/

– Window• http://whatwant.tistory.com/411

• Basic => Chaos => Harmonious?