git 분산버전관리 시스템(1)

13
Git 분산버전관리 시스템(1) SBS 콘텐츠허브 노현준 버전관리시스템 ? Git ? GitHub ? SourceTree ? Reference ?

Upload: hyunjun-roh

Post on 07-Jul-2015

100 views

Category:

Technology


0 download

DESCRIPTION

분산버전관리시스템? Git?

TRANSCRIPT

Git 분산버전관리 시스템(1)

SBS 콘텐츠허브노현준

☞ 버전관리시스템 ?

☞ Git ?

☞ GitHub ?

☞ SourceTree ?

☞ Reference ?

Company Logo

www.themegallery.com

버전관리시스템

버전 관리 시스템

- 프로젝트에 포함된 파일의 변경 사항을 추적할 수 있도록 돕는 방법론

버전 관리시스템의 종류

- 로컬 버전 관리 시스템(RCS)

- 중앙집중식 버전 관리 시스템(CVS, SVN…)

- 분산 버전 관리 시스템(Git, Mercurial…)

Company Logo

www.themegallery.com

버전관리시스템

중앙 집중식 버전 관리 시스템- 원격에서 작업한 후 네트워크 연결을

통해 저장소에 변경사항을 전송

- 장점

- 다른 사람이 무엇을 하는지 알 수 있다.

- 관리자는 무엇을 할 수 있는지 꼼꼼하게

관리할 수 있다.

- 단점

- 중앙서버에 문제가 생기면 모든 서비스에

영향줌

- 백업이 없을 시에 자신의 컴퓨터에

스냅샵을 제외한 모든 프로젝트 이력을

잃음

- 네트워크상에서 원격 저장소에 접근해야함

Company Logo

www.themegallery.com

버전관리시스템

분산 버전 관리 시스템- 마지막 스냅샷을 가져오는 대신 저장소

통째로 복제

- 다수의 원격 저장소를 갖는 것이

가능하기 떄문에 동시에 여러 그룹과

여러 방법으로 작업 가능

Company Logo

www.themegallery.com

Git

Git?- 분산버전 관리 시스템

- 리눅스 커널 개발에 이용하려고 개발하였으나, 현재 널리 사용되고 있음

- 전체 기록과 각 기록을 추적할 수 잇는 정보를 포함하고 있으며, 완전한형태의 저장소

- 네트워크에 접근하거나 중앙 서버에 의존하지 않음

Git의 목표- 빠른 속도

- 단순한 구조

- 비선형적인 개발(수천 개의 동시 다발적인 브랜치)

- 완벽한 분산

- 리눅스 커널 같은 대형 프로젝트에도 유용할 것(속도나 데이터 크기 면에서)

Company Logo

www.themegallery.com

Git

중앙집중식버전관리시스템(CVS, SVN 등)

분산버전관리시스템(Git)

델타가 아니라 스냅샷

Company Logo

www.themegallery.com

Git

거의 모든 명령을 로컬에서 실행- 거의 모든 명령이 로컬 파일과 데이터만 사용하기 때문에 네트워크에 있

는 다른 컴퓨터는 필요 없다

- 네트워크 속도에 영향을 미치지 않기 때문에 속도가 빠르다

- 로컬에 히스토리가 있기 때문에 네트워크 접속 없이 조회 할 수 있고 네트워크 접속하고 있지 않아도 커밋 할 수 있다

- Exaple

- 서버에 연결해서 비교할 필요 없이 로컬에서 한달전 파일과 지금 파일을 찾음

Company Logo

www.themegallery.com

Git

무결성- Git은 모든 데이터를 저장하기 전 체크섬을 구하고 그 체크섬으로 데이

터를 관리함

- 체크섬은 Git의 데이터 단위

- SHA-1 해시로 파일의 내용이나 디렉터리 구조를 이용하여 체크섬을 만듬

- 파일 이름으로 저장하지 않고 해당 파일의 해시로 저장함

무결성- Git은 무얼 하든지 데이터를 추가한다. 되돌리거나 삭제할 방법 없음.

- 스냅샷을 커밋하고 나면 데이터를 잃어버리기 어렵다

Company Logo

www.themegallery.com

Git

세가지 상태- Git은 Committed, Modified, Staged

세가지 상태로 관리

- Committed- 데이터가 로컬 데이터베이스에 안전하게

저장됨

- Modified- 수정한 파일을 아직 로컬 데이터베이스에

커밋 하지 않음

- Staged - 수정한 파일을 곧 커밋할 것이라고 표시한

상태

Company Logo

www.themegallery.com

GitHub

GitHub?- Git을 사용하는 프로젝트를 지원하는 웹 기반의 호스팅 서비스

- 전 세계에서 가장 많이 쓰는 오픈소스 버전관리시스템으로 꼽힘

Company Logo

www.themegallery.com

Source Tree?- 터미널에서 명령어를 사용하여 관리

하는 것은 어렵다

- Source Tree는 GUI 환경으로 소스관리를 편하게 지원해줌

- GUI 내에 commit, push, branch, merge 가능함

- 소스의 통합과 분기에 대한 확인이용이

SourceTree

Company Logo

www.themegallery.com

Reference?- Git

- http://git-scm.com/

- GitHub

- https://github.com/

- SourceTree

- http://www.sourcetreeapp.com/

- 생활코딩

- http://opentutorials.org/course/1492/

- Git Book

- http://git-scm.com/book/ko/v1

- Git Study 모임자료

- http://www.slipp.net/wiki/pages/viewpage.action?pageId=4161614

Reference