SlideShare a Scribd company logo
Git
하늘소
24기 윤승용
버전관리
버전관리?
파일의 변화를 시간에 따라 기록하여
과거 특정 시점의 버전을 다시 불러올 수 있는 시스템
VCS (Version Control System)라고 함
새내기의 프로그래밍 첫 걸음
참여 인원 1명, 파일 1개, 코드 6줄, 5분 소요
모든 실수를 바로 잡을 수 있는 만능 키
CTRL Z+
개인 프로젝트
참여 인원 1명, 파일 5개 이상, 코드 1,000줄 내외, 4-5시간 소요
팀 프로젝트
참여 인원 4명, 파일 10개 이상, 코드 5,000줄 내외, 1개월 소요
구글 플레이 출시용 프로젝트 DTRO
참여 인원 1명, 파일 39개, 코드 9,312줄, 3개월 소요
YooiiStudios 에서 맡은 첫 프로젝트 Sketch Kit
참여 인원 4명, 파일 293개, 코드 50,856줄, 10개월 소요
YooiiStudios 에서 진행 중인 프로젝트 Swish
참여 인원 3명, 파일 610개, 코드 145,342줄, 10개월 소요
‘Ctrl+Z’ 로는 한계가 있음
CTRL Z+
디렉토리로 파일 복사해서 관리
로컬 VCS
CVCS (Central Version Control System)
중앙 집중식 버전 관리
대표적인 CVCS : SVN
DVCS (Distributed Version Control System)
분산 버전 관리
대표적인 DVCS : Git
Git의 역사
2005년생
리눅스의 아버지 ‘리누즈 토발즈’
Git의 목표
• 빠른 속도
• 단순한 구조
• 비선형적 개발 (동시성)
• 완벽한 분산
• Linux 커널 같은 대형 프로젝트에도 활용할 수 있어함 (속도, 크기)
Git vs SVN
Git의 기초
기존 VCS의 데이터 관리
Git과 다른 VCS와 가장 큰 차이점은 ‘스냅샷’
거의 대부분의 명령은 로컬에서 이루어짐
GitSVN
Repository
local
Repository
local
Local
Repository
commit
Stage 영역이 있음
Git의 활용
용어 정리
• Commit : 수정 내역을 사용자 기준 단위로 기록 (보통 1개의 기능 단위)
• Branch : 내 원래 소스코드와 독립된 작업 공간, 여기서 무슨 짓을 해도 괜찮음
• CheckOut : Branch간의 이동
• Merge : Branch와 Branch를 병합
시간표 짜는 프로그램을 만들어 보자
Git에는 Default로 Master라는 Branch가 있다
Master
HEAD
Commit은 Branch에 기록된다
Master
Commit 1 : 프로젝트 초기 세팅
Commit 2 : 시간표 추가 기능 구현
Commit 3 : 시간표 수정 기능 구현
HEAD
기존에 코드는 안전하게 놔두고,
시간표 알람이 기능을 만들고 싶다
Alarm이라는 새 Branch를 만들어 작업
Alarm
Master
Commit 1 : 프로젝트 초기 세팅
Commit 2 : 시간표 추가 기능 구현
Commit 3 : 시간표 수정 기능 구현
Commit 4 : 알람 기능 구현
HEAD
만약, Alarm 에서 작업 중,
Master 에서 수정할 일이 생김
Master를 Checkout 한 뒤 수정 작업
Alarm
Master
Commit 1 : 프로젝트 초기 세팅
Commit 2 : 시간표 추가 기능 구현
Commit 3 : 시간표 수정 기능 구현
Commit 4 : 알람 기능 구현
HEAD
알람 기능이 제대로 동작도 안하고,
코드도 더럽고 때려치우고 싶다
Master로 돌아오고, Alarm 삭제
Alarm
Master
Commit 1 : 프로젝트 초기 세팅
Commit 2 : 시간표 추가 기능 구현
Commit 3 : 시간표 수정 기능 구현
Commit 4 : 알람 기능 구현
HEAD
Alarm 에서 작업 한 기능이 성공적이고,
원본 코드와 합쳐도 될 것 같다
Alarm을 Master로 Merge
Alarm
Master
Commit 1 : 프로젝트 초기 세팅
Commit 2 : 시간표 추가 기능 구현
Commit 3 : 시간표 수정 기능 구현
Commit 4 : 알람 기능 구현
HEAD
Remote Repository를 통해 백업 및 협업을 하기 위한
Push / Pull 기능
code Local
repo
Remote
repo
Push
code Local
repo
Remote
repo
FetchMerge
Pull= Fetch à Merge
해당 작업을 반복하고, 프로젝트를 진행해 나가면..
실제 개발에서 대중적으로 사용하는 Branch 관리 기법
Git 쉽게 활용하기
Git Remote Repository Service
여러 협업 Tool들과 연동 가능
추가로, GitHub는 멋진 OpenSource가 많음
구현하기 힘든 이슈는 GitHub를 찾아볼 것
GUI Tool을 활용
Git 기능들을 쉽게 사용 가능
수정 사항들을 쉽게 파악 할 수 있음
More about Git
• Git Official Website : https://git-scm.com
• Git-Flow : https://github.com/nvie/gitflow

More Related Content

What's hot (20)

PPTX
Git in 10 minutes
Safique Ahmed Faruque
 
PPTX
Git - Basic Crash Course
Nilay Binjola
 
PPTX
Git One Day Training Notes
glen_a_smith
 
PDF
Starting with Git & GitHub
Nicolás Tourné
 
PPTX
Introduction to Gitlab | Gitlab 101 | Training Session
Anwarul Islam
 
PDF
Git and Github
Wen-Tien Chang
 
PPTX
Git and GitHub
Md. Ahsan Habib Nayan
 
PDF
Learning git
Sid Anand
 
PPTX
오픈소스 개발을 위한 Git 사용법 실습
BJ Jang
 
PDF
Git basics
GHARSALLAH Mohamed
 
PDF
15分でわかるGit入門
to_ueda
 
PDF
Git training v10
Skander Hamza
 
PPTX
Github basics
Radoslav Georgiev
 
PDF
NDC 2015 삼시세끼 빌드만들기
Hyunsuk Ahn
 
PDF
Git & GitHub for Beginners
Sébastien Saunier
 
PDF
GIT Básico
André Justi
 
PPTX
Git+github
Guilherme Lima Pereira
 
PPTX
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Simplilearn
 
PDF
Git flow
DaeMyung Kang
 
PDF
Introducing GitLab
Taisuke Inoue
 
Git in 10 minutes
Safique Ahmed Faruque
 
Git - Basic Crash Course
Nilay Binjola
 
Git One Day Training Notes
glen_a_smith
 
Starting with Git & GitHub
Nicolás Tourné
 
Introduction to Gitlab | Gitlab 101 | Training Session
Anwarul Islam
 
Git and Github
Wen-Tien Chang
 
Git and GitHub
Md. Ahsan Habib Nayan
 
Learning git
Sid Anand
 
오픈소스 개발을 위한 Git 사용법 실습
BJ Jang
 
Git basics
GHARSALLAH Mohamed
 
15分でわかるGit入門
to_ueda
 
Git training v10
Skander Hamza
 
Github basics
Radoslav Georgiev
 
NDC 2015 삼시세끼 빌드만들기
Hyunsuk Ahn
 
Git & GitHub for Beginners
Sébastien Saunier
 
GIT Básico
André Justi
 
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Simplilearn
 
Git flow
DaeMyung Kang
 
Introducing GitLab
Taisuke Inoue
 

Similar to Git이란 (Git 소개 및 기초 이론) (20)

PDF
[17.02.09] Github introduction (Korean Version)
Ildoo Kim
 
PDF
청강대 특강 - 프로젝트 제대로 해보기
Chris Ohk
 
PPTX
[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규
ChangKyu Song
 
PDF
[숭실대학교 SODA]깃(git) 명령 및 소스트리(sourceTree) 실습
Soongsil University
 
PDF
Why use git
Taeung Song
 
PPTX
Git lecture1
ssuseraf62e91
 
PDF
Devon 2011-b-5 효과적인 레거시 코드 다루기
Daum DNA
 
PPTX
Basic study 1회차
Seonmun Choi
 
PPT
테스팅을위한선행조건 명세
규동 최규동
 
PDF
Git 과 GitHub 를 이용한 버전관리와 협업 - 1주차 - 첫 커밋 푸시하기
Youngbin Han
 
PPTX
Chapter 2. 업무 자동화를 위한 컴퓨터 세팅 | 6개월 치 업무를 하루 만에 끝내는 업무자동화 |...
Byunghyun Ban
 
PDF
TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST_NHNent
 
PPTX
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법
복연 이
 
PPTX
오픈소스GIS 개발 일반 강의자료
BJ Jang
 
PDF
GDGoC_KHU_GoServer_week5_신건우,김도영.pdf
dpfls5645
 
PDF
200720 바이오협회 생물정보학 파이썬 강의
Joohyun Han
 
PPTX
Svn 사용하기
Jung-Ho Kim
 
PDF
200718 덕성여대 생물정보학 강의 :: 생물정보학 파이썬
Joohyun Han
 
PDF
깃허브 시작하기
진태 이
 
PDF
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
지원 정
 
[17.02.09] Github introduction (Korean Version)
Ildoo Kim
 
청강대 특강 - 프로젝트 제대로 해보기
Chris Ohk
 
[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규
ChangKyu Song
 
[숭실대학교 SODA]깃(git) 명령 및 소스트리(sourceTree) 실습
Soongsil University
 
Why use git
Taeung Song
 
Git lecture1
ssuseraf62e91
 
Devon 2011-b-5 효과적인 레거시 코드 다루기
Daum DNA
 
Basic study 1회차
Seonmun Choi
 
테스팅을위한선행조건 명세
규동 최규동
 
Git 과 GitHub 를 이용한 버전관리와 협업 - 1주차 - 첫 커밋 푸시하기
Youngbin Han
 
Chapter 2. 업무 자동화를 위한 컴퓨터 세팅 | 6개월 치 업무를 하루 만에 끝내는 업무자동화 |...
Byunghyun Ban
 
TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST_NHNent
 
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법
복연 이
 
오픈소스GIS 개발 일반 강의자료
BJ Jang
 
GDGoC_KHU_GoServer_week5_신건우,김도영.pdf
dpfls5645
 
200720 바이오협회 생물정보학 파이썬 강의
Joohyun Han
 
Svn 사용하기
Jung-Ho Kim
 
200718 덕성여대 생물정보학 강의 :: 생물정보학 파이썬
Joohyun Han
 
깃허브 시작하기
진태 이
 
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
지원 정
 
Ad

Git이란 (Git 소개 및 기초 이론)