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