Git 분산버전관리 시스템(1) 
SBS 콘텐츠허브 노현준 
☞ 버전관리시스템 ? 
☞ Git ? 
☞ GitHub ? 
☞ SourceTree ? 
☞ Reference ?
www.themegallery.com 
Company Logo 
버전관리 시스템 
버전 관리 시스템 
- 프로젝트에 포함된 파일의 변경 사항을 추적할 수 있도록 돕는 방법론 
버전 관리시스템의 종류 
- 로컬 버전 관리 시스템(RCS) 
- 중앙집중식 버전 관리 시스템(CVS, SVN…) 
- 분산 버전 관리 시스템(Git, Mercurial…)
www.themegallery.com 
Company Logo 
버전관리 시스템 
중앙 집중식 버전 관리 시스템 
- 원격에서 작업한 후 네트워크 연결을 
통해 저장소에 변경사항을 전송 
- 장점 
- 다른 사람이 무엇을 하는지 알 수 있다. 
- 관리자는 무엇을 할 수 있는지 꼼꼼하게 
관리할 수 있다. 
- 단점 
- 중앙서버에 문제가 생기면 모든 서비스에 
영향줌 
- 백업이 없을 시에 자신의 컴퓨터에 
스냅샵을 제외한 모든 프로젝트 이력을 
잃음 
- 네트워크상에서 원격 저장소에 접근해야함
www.themegallery.com 
Company Logo 
버전관리 시스템 
분산 버전 관리 시스템 
- 마지막 스냅샷을 가져오는 대신 저장소 
통째로 복제 
- 다수의 원격 저장소를 갖는 것이 
가능하기 떄문에 동시에 여러 그룹과 
여러 방법으로 작업 가능
www.themegallery.com 
Company Logo 
Git 
Git? 
- 분산버전 관리 시스템 
- 리눅스 커널 개발에 이용하려고 개발하였으나, 현재 널리 사용되고 있음 
- 전체 기록과 각 기록을 추적할 수 잇는 정보를 포함하고 있으며, 완전한 
형태의 저장소 
- 네트워크에 접근하거나 중앙 서버에 의존하지 않음 
Git의 목표 
- 빠른 속도 
- 단순한 구조 
- 비선형적인 개발(수천 개의 동시 다발적인 브랜치) 
- 완벽한 분산 
- 리눅스 커널 같은 대형 프로젝트에도 유용할 것(속도나 데이터 크기 면 
에서)
www.themegallery.com 
Company Logo 
Git 
중앙집중식 버전 관리 시스템 
(CVS, SVN 등) 
분산 버전 관리 시스템 
(Git) 
델타가 아니라 스냅샷
www.themegallery.com 
Company Logo 
Git 
거의 모든 명령을 로컬에서 실행 
- 거의 모든 명령이 로컬 파일과 데이터만 사용하기 때문에 네트워크에 있 
는 다른 컴퓨터는 필요 없다 
- 네트워크 속도에 영향을 미치지 않기 때문에 속도가 빠르다 
- 로컬에 히스토리가 있기 때문에 네트워크 접속 없이 조회 할 수 있고 네 
트워크 접속하고 있지 않아도 커밋 할 수 있다 
- Exaple 
- 서버에 연결해서 비교할 필요 없이 로컬에서 한달전 파일과 지금 파 
일을 찾음
www.themegallery.com 
Company Logo 
Git 
무결성 
- Git은 모든 데이터를 저장하기 전 체크섬을 구하고 그 체크섬으로 데이 
터를 관리함 
- 체크섬은 Git의 데이터 단위 
- SHA-1 해시로 파일의 내용이나 디렉터리 구조를 이용하여 체크섬을 만 
듬 
- 파일 이름으로 저장하지 않고 해당 파일의 해시로 저장함 
무결성 
- Git은 무얼 하든지 데이터를 추가한다. 되돌리거나 삭제할 방법 없음. 
- 스냅샷을 커밋하고 나면 데이터를 잃어버리기 어렵다
www.themegallery.com 
Company Logo 
Git 
세가지 상태 
- Git은 Committed, Modified, Staged 
세가지 상태로 관리 
- Committed 
- 데이터가 로컬 데이터베이스에 안전하게 
저장됨 
- Modified 
- 수정한 파일을 아직 로컬 데이터베이스에 
커밋 하지 않음 
- Staged 
- 수정한 파일을 곧 커밋할 것이라고 표시한 
상태
www.themegallery.com 
Company Logo 
GitHub 
GitHub? 
- Git을 사용하는 프로젝트를 지원하는 웹 기반의 호스팅 서비스 
- 전 세계에서 가장 많이 쓰는 오픈소스 버전관리시스템으로 꼽힘
www.themegallery.com 
Company Logo 
Source Tree? 
- 터미널에서 명령어를 사용하여 관리 
하는 것은 어렵다 
- Source Tree는 GUI 환경으로 소스 
관리를 편하게 지원해줌 
- GUI 내에 commit, push, branch, 
merge 가능함 
- 소스의 통합과 분기에 대한 확인이 
용이 
SourceTree
www.themegallery.com 
Company Logo 
Reference 
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
Git 분산버전관리 시스템(1)

More Related Content

PDF
Git이란 (Git 소개 및 기초 이론)
PDF
[기초] GIT 교육 자료
PPTX
git, 이해부터 활용까지
PDF
svn 능력자를 위한 git 개념 가이드
PDF
Git tutorials
PDF
Git 입문자를 위한 가이드
PPTX
Git의 개념과 사용
PPTX
이클립스로 GIT 사용하기
Git이란 (Git 소개 및 기초 이론)
[기초] GIT 교육 자료
git, 이해부터 활용까지
svn 능력자를 위한 git 개념 가이드
Git tutorials
Git 입문자를 위한 가이드
Git의 개념과 사용
이클립스로 GIT 사용하기

What's hot (20)

PDF
GitHub 실습 교육
PPTX
PDF
버전관리시스템 종류와 소개
PDF
140109 팀프로젝트 협업툴
PDF
버전관리를 들어본적 없는 사람들을 위한 DVCS - Git
PDF
11. git basic
PDF
Git 더하기 GitHub(구름IDE 환경)
PDF
Git 더하기 GitHub(Git클라이언트 활용) / Getting started with git+github
PPTX
Git Branch
PPTX
디자이너를위한Git #1/2
PDF
Git 사용법 공유 + Unity3D with git
PDF
Github 사용법
PPTX
git, git flow
 
PDF
Git 기본개념과 사용법 그리고 어플리케이션
PDF
Git 코드랩 스터디 1
PDF
Git - Level 2
PPTX
Advanced git
PDF
Git는 머꼬? GitHub는 또 머지?
PDF
초보자를 위한 Git & GitHub
PPTX
GitHub 실습 교육
버전관리시스템 종류와 소개
140109 팀프로젝트 협업툴
버전관리를 들어본적 없는 사람들을 위한 DVCS - Git
11. git basic
Git 더하기 GitHub(구름IDE 환경)
Git 더하기 GitHub(Git클라이언트 활용) / Getting started with git+github
Git Branch
디자이너를위한Git #1/2
Git 사용법 공유 + Unity3D with git
Github 사용법
git, git flow
 
Git 기본개념과 사용법 그리고 어플리케이션
Git 코드랩 스터디 1
Git - Level 2
Advanced git
Git는 머꼬? GitHub는 또 머지?
초보자를 위한 Git & GitHub
Ad

Viewers also liked (7)

PDF
Git 과 GitHub 를 이용한 버전관리와 협업 - 2주차A - 비교하기와 되돌리기
PDF
Git 분산 버전 관리 시스템 01.소개 및 기초 개념
PDF
Git Tutorial
PDF
우리는 꿈을 꾸는 개발자들.
PDF
2015년 2월 TV 인터넷관심도 월간리포트
PDF
[2015년 11월] TV 인터넷관심도 월간 리포트
PDF
[2015년 10월] TV 인터넷관심도 월간 리포트
Git 과 GitHub 를 이용한 버전관리와 협업 - 2주차A - 비교하기와 되돌리기
Git 분산 버전 관리 시스템 01.소개 및 기초 개념
Git Tutorial
우리는 꿈을 꾸는 개발자들.
2015년 2월 TV 인터넷관심도 월간리포트
[2015년 11월] TV 인터넷관심도 월간 리포트
[2015년 10월] TV 인터넷관심도 월간 리포트
Ad

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

PPTX
PPTX
Git basic2 chaos
PDF
[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함
PPTX
30기 정성학 "Git, sourcetree 사용법"
PPTX
Git란 무엇인가?
PDF
[17.02.09] Github introduction (Korean Version)
PDF
Git: A Motivating Introduction
PPTX
Git의 기초 및 Bitbucket을 이용한 Git 코드 협업 - Twoseed
PDF
[201808] GitHub 사용하기 - GIt & 협업 활용
PPTX
리스펙토링 세미나 - Git, Github 알아보기
PDF
Why use git
PDF
Flamingo 1.2 릴리즈의 지원 기능 정리
PDF
Git & GitHub
PPTX
Git 기본
PDF
201210 그루터 빅데이터_플랫폼_아키텍쳐_및_솔루션_소개
PDF
Oracle linux8 solaris_new_features-suk kim
PDF
About Git_2017.08.31 aug 투씨드 (박재석)
PDF
DevOps - CI/CD 알아보기
PDF
OpenSource Big Data Platform - Flamingo 소개와 활용
PDF
Flamingo project v4
Git basic2 chaos
[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함
30기 정성학 "Git, sourcetree 사용법"
Git란 무엇인가?
[17.02.09] Github introduction (Korean Version)
Git: A Motivating Introduction
Git의 기초 및 Bitbucket을 이용한 Git 코드 협업 - Twoseed
[201808] GitHub 사용하기 - GIt & 협업 활용
리스펙토링 세미나 - Git, Github 알아보기
Why use git
Flamingo 1.2 릴리즈의 지원 기능 정리
Git & GitHub
Git 기본
201210 그루터 빅데이터_플랫폼_아키텍쳐_및_솔루션_소개
Oracle linux8 solaris_new_features-suk kim
About Git_2017.08.31 aug 투씨드 (박재석)
DevOps - CI/CD 알아보기
OpenSource Big Data Platform - Flamingo 소개와 활용
Flamingo project v4

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

  • 1. Git 분산버전관리 시스템(1) SBS 콘텐츠허브 노현준 ☞ 버전관리시스템 ? ☞ Git ? ☞ GitHub ? ☞ SourceTree ? ☞ Reference ?
  • 2. www.themegallery.com Company Logo 버전관리 시스템 버전 관리 시스템 - 프로젝트에 포함된 파일의 변경 사항을 추적할 수 있도록 돕는 방법론 버전 관리시스템의 종류 - 로컬 버전 관리 시스템(RCS) - 중앙집중식 버전 관리 시스템(CVS, SVN…) - 분산 버전 관리 시스템(Git, Mercurial…)
  • 3. www.themegallery.com Company Logo 버전관리 시스템 중앙 집중식 버전 관리 시스템 - 원격에서 작업한 후 네트워크 연결을 통해 저장소에 변경사항을 전송 - 장점 - 다른 사람이 무엇을 하는지 알 수 있다. - 관리자는 무엇을 할 수 있는지 꼼꼼하게 관리할 수 있다. - 단점 - 중앙서버에 문제가 생기면 모든 서비스에 영향줌 - 백업이 없을 시에 자신의 컴퓨터에 스냅샵을 제외한 모든 프로젝트 이력을 잃음 - 네트워크상에서 원격 저장소에 접근해야함
  • 4. www.themegallery.com Company Logo 버전관리 시스템 분산 버전 관리 시스템 - 마지막 스냅샷을 가져오는 대신 저장소 통째로 복제 - 다수의 원격 저장소를 갖는 것이 가능하기 떄문에 동시에 여러 그룹과 여러 방법으로 작업 가능
  • 5. www.themegallery.com Company Logo Git Git? - 분산버전 관리 시스템 - 리눅스 커널 개발에 이용하려고 개발하였으나, 현재 널리 사용되고 있음 - 전체 기록과 각 기록을 추적할 수 잇는 정보를 포함하고 있으며, 완전한 형태의 저장소 - 네트워크에 접근하거나 중앙 서버에 의존하지 않음 Git의 목표 - 빠른 속도 - 단순한 구조 - 비선형적인 개발(수천 개의 동시 다발적인 브랜치) - 완벽한 분산 - 리눅스 커널 같은 대형 프로젝트에도 유용할 것(속도나 데이터 크기 면 에서)
  • 6. www.themegallery.com Company Logo Git 중앙집중식 버전 관리 시스템 (CVS, SVN 등) 분산 버전 관리 시스템 (Git) 델타가 아니라 스냅샷
  • 7. www.themegallery.com Company Logo Git 거의 모든 명령을 로컬에서 실행 - 거의 모든 명령이 로컬 파일과 데이터만 사용하기 때문에 네트워크에 있 는 다른 컴퓨터는 필요 없다 - 네트워크 속도에 영향을 미치지 않기 때문에 속도가 빠르다 - 로컬에 히스토리가 있기 때문에 네트워크 접속 없이 조회 할 수 있고 네 트워크 접속하고 있지 않아도 커밋 할 수 있다 - Exaple - 서버에 연결해서 비교할 필요 없이 로컬에서 한달전 파일과 지금 파 일을 찾음
  • 8. www.themegallery.com Company Logo Git 무결성 - Git은 모든 데이터를 저장하기 전 체크섬을 구하고 그 체크섬으로 데이 터를 관리함 - 체크섬은 Git의 데이터 단위 - SHA-1 해시로 파일의 내용이나 디렉터리 구조를 이용하여 체크섬을 만 듬 - 파일 이름으로 저장하지 않고 해당 파일의 해시로 저장함 무결성 - Git은 무얼 하든지 데이터를 추가한다. 되돌리거나 삭제할 방법 없음. - 스냅샷을 커밋하고 나면 데이터를 잃어버리기 어렵다
  • 9. www.themegallery.com Company Logo Git 세가지 상태 - Git은 Committed, Modified, Staged 세가지 상태로 관리 - Committed - 데이터가 로컬 데이터베이스에 안전하게 저장됨 - Modified - 수정한 파일을 아직 로컬 데이터베이스에 커밋 하지 않음 - Staged - 수정한 파일을 곧 커밋할 것이라고 표시한 상태
  • 10. www.themegallery.com Company Logo GitHub GitHub? - Git을 사용하는 프로젝트를 지원하는 웹 기반의 호스팅 서비스 - 전 세계에서 가장 많이 쓰는 오픈소스 버전관리시스템으로 꼽힘
  • 11. www.themegallery.com Company Logo Source Tree? - 터미널에서 명령어를 사용하여 관리 하는 것은 어렵다 - Source Tree는 GUI 환경으로 소스 관리를 편하게 지원해줌 - GUI 내에 commit, push, branch, merge 가능함 - 소스의 통합과 분기에 대한 확인이 용이 SourceTree
  • 12. www.themegallery.com Company Logo Reference 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

Editor's Notes

  • #3: RCS의 기본적인 동작 방식은 각 리비전들 간의 패치 세트(patch set)라고 하는 데이터의 차이점들을 특별한 형식의 파일에 저장, 특정 시점의 파일 내용을 보고 싶을 때 해당 시점까지의 패치들을 모두 더하여 파일을 만들어내는 것이다
  • #4: CVCS에서는 버전 관리되는 모든 파일을 저장하는 하나의 서버와, 이 중앙 서버에서 파일들을 가져오는(checkout) 다수의 클라이언트가 존재한다. 오랫동안 사용된 이 방식은 지금까지도 버전 관리의 대표적인 방식이다.
  • #5: 서버에 문제가 생겨도 어느 클라이언트든 복제된 저장소를 다시 서버로 복사하면 서버가 복구된다. 체크아웃(checkout)을 할 때마다 전체 백업이 일어나는 셈이다
  • #7: Subversion과 Subversion 비슷한 놈들과 Git의 가장 큰 차이점은 데이터를 다루는 방법에 있다. 큰 틀에서 봤을 때 대부분의 VCS 시스템이 관리하는 정보는 파일들의 목록이다. CVS, Subversion, Perforce, Bazaar 등의 시스템은 파일의 집합으로 정보를 관리한다. 각 파일의 변화를 그림 1-4처럼 시간순으로 관리한다. 그림 1-4. 각 파일에 대한 변화(델타)를 저장하는 시스템들 Git은 이런 식으로 데이터를 저장하지도 취급하지도 않는다. 대신 Git의 데이터는 파일 시스템의 스냅샷이라 할 수 있으며 크기가 아주 작다. Git은 커밋하거나 프로젝트의 상태를 저장할 때마다 파일이 존재하는 그 순간을 중요하게 여긴다. 파일이 달라지지 않았으면 Git은 성능을 위해서 파일을 저장하지 않는다. 단지 이전 상태의 파일에 대한 링크만 저장한다. Git은 그림 1-5처럼 동작한다. 그림 1-5. Git은 시간순으로 프로젝트의 스냅샷을 저장한다 이것이 Git이 다른 VCS와 구분되는 점이다. 이점 때문에 Git는 다른 시스템들이 과거로부터 답습해왔던 버전 컨트롤의 개념과 다르다는 것이고 많은 부분을 새로운 관점에서 바라본다. Git은 강력한 도구를 지원하는 작은 파일시스템이다. Git은 단순한 VCS가 아니다. 이제 3장에서 설명할 Git 브랜치를 사용하면 얻게 되는 이득이 무엇인지 설명한다.
  • #10: Git 디렉토리는 Git이 프로젝트의 메타데이터와 객체 데이터베이스를 저장하는 곳을 말한다. Git 디렉토리가 Git의 핵심이다. 다른 컴퓨터에 있는 저장소를 Clone 할 때 Git 디렉토리가 만들어진다. 워킹 디렉토리는 프로젝트의 특정 버전을 Checkout한 것이다. Git 디렉토리는 지금 작업하는 디스크에 있고 그 디렉토리에 압축된 데이터베이스에서 파일을 가져와서 워킹 디렉토리를 만든다. Staging Area는 Git 디렉토리에 있다. 단순한 파일이고 곧 커밋할 파일에 대한 정보를 저장한다. 종종 인덱스라고 불리기도 하지만, Staging Area라는 명칭이 표준이 되어가고 있다. Git으로 하는 일은 기본적으로 아래와 같다: 워킹 디렉토리에서 파일을 수정한다. Staging Area에 파일을 Stage해서 커밋할 스냅샷을 만든다. Staging Area에 있는 파일들을 커밋해서 Git 디렉토리에 영구적인 스냅샷으로 저장한다. Git 디렉토리에 있는 파일들은 Committed 상태이다. 파일을 수정하고 Staging Area에 추가했다면 Staged이다. 그리고 Checkout하고 나서 수정했지만, 아직 Staging Area에 추가하지 않았으면 Modified이다. 2장에서 이 상태에 대해 좀 더 자세히 배운다. 특히 Staging Area를 어떻게 이용하는지 혹은 아예 생략하는 방법도 설명한다.