git github com - cbnu › course › 2019.2 › cc › lab7.git.pdf · 2019-11-19 · git/github(1)...
TRANSCRIPT
GIT / GITHUB.COM
Heeseung Jo
2
Git 이란
History 관리도구
==
3
Github 이란
Git 이라는 도구 기반의 코드 및 프로젝트 호스팅 사이트
각종 Remote repository(원격저장소)들의 집합소
2008년 2월 서비스 시작
4
Git의 기능
Source code management ToolCtrl+c,v 나 Alzip 압축파일 관리법
OSS개론 과제_최종_2016_09_08.zip
OSS개론 과제_진짜최종_2016_09_09.zip
OSS개론 과제_진짜진짜최종_2016_09_22.zip
그 사이에 뭐가 바뀌었는지차이(Diff)를 알 수 없다
Ctrl+c,v 를 할수록차지하는 용량 x 2
x 3 … + diff
5
Git의 기능
Source code management ToolCtrl+c,v 나 Alzip 압축파일 관리법
OSS개론 과제_최종_2016_09_08.zip
OSS개론 과제_진짜최종_2016_09_09.zip
OSS개론 과제_진짜진짜최종_2016_09_22.zip
그 사이에 뭐가 바뀌었는지차이(Diff)를 알 수 없다
<History 관리기능>차이(Diff)가 무엇이고수정이유, Log를 남길수 있다.
<타임머신 기능>현재파일들을 안전한 상태로과거상태 그대로 복원가능(반대도 가능)
(각 버전별 차이만 저장해서 size 감소)
Ctrl+c,v 를 할수록차지하는 용량 x 2
x 3 … + diff
6
Git의 기능
Source code management ToolCtrl+c,v 나 Alzip 압축파일 관리법
OSS개론 과제_최종_2016_09_08.zip
OSS개론 과제_진짜최종_2016_09_09.zip
OSS개론 과제_진짜진짜최종_2016_09_22.zip
좋은건 알겠는데..Git을 쓸 이유가 부족..
Wants는 맞지만 Needs는 아니야승리
(아직까진..)
Git 배우는데 시간소비 하느니Code 한줄이라도 더 개발..
7
github 회원가입
https://github.com
8
github 저장소 생성
9
github 저장소 생성
> echo "# test" >> README.md
> git initInitialized empty Git repository in /tmp/temp/.git/
> git add README.md
> git commit -m "first commit"[master (root-commit) d6cd919] first commit1 file changed, 0 insertions(+), 0 deletions(-)create mode 100644 README.md
> git remote add origin https://github.com/heesn/test.git
> git push -u origin master
11
실습
<Git 필수 명령>
add : 커밋할 목록에 추가commit : 커밋 (히스토리의 한 단위) 만들기push : 현재까지 역사(commits) Github에 밀어넣기
출처 : source code management system(Git) – Taeung Song,NIPA OpenFrotierLab(2016)
12
실습
(아까 생성한 repo. 하위에서 작업)
소스 작성 (or 기존에 만들어 둔 것들 복사)
git add .
git status
git commit -a -m "hello"
git push
git pull
• 현재 local repo.를 최신화
13
실습
새로운 폴더 생성
git clone https://github.com/heesn/test.git
Modify something
git add .
git commit -m "add something"
git push
14
Collaborators 지정
15
.gitignore 파일
.gitignore : repo에 저장하지 않을 파일 목록
• 보통 repo 바로 아래 위치
• https://www.gitignore.io
# Created by https://www.gitignore.io/api/c,c++
# heesntags### C #### Prerequisites*.d# Object files*.o*.ko*.obj*.elf# Libraries*.lib*.a*.la*.lo......
16
Git 장점
• 로컬 및 원격 저장소 생성• 로컬 저장소에 파일 생성 및 추가• 수정 내역을 로컬 저장소에 제출• 파일 수정 내역 추적• Master에 영향을 끼치지 않는 브랜치 생성• 브랜치 사이의 병합(Merge)• 브랜치를 병합하는 도중의 충돌 감
…
전 세계의 수많은 사용자가 사용중
Git을 사용한 저장소를 공유 사이트인 GitHub 웹 사이트의 존재
사용자 수에서 나오는 어마어마한 숫자의 튜토리얼과 프로젝트가 존재
17
프로젝트와 Git 운용 전략
hello
프로젝트명: hello
팀원:홍길동, 성춘향
18
프로젝트와 Git 운용 전략
hello
홍길동/hello 성춘향/hello
Fork!!
Fork!!
프로젝트명: hello
팀원:홍길동, 성춘향
19
프로젝트와 Git 운용 전략
hello
홍길동/hello 성춘향/hello
topic branchtopic banch
Fork!!
Fork!!
Pull-request !! Pull-request !!
프로젝트명: hello
팀원:홍길동, 성춘향
20
프로젝트와 Git 운용 전략
hello
홍길동/hello 성춘향/hello
topic branch
Maintainer의 review
함께 discussion
topic banch
Fork!!
Fork!!
Pull-request !! Pull-request !!
프로젝트명: hello
팀원:홍길동, 성춘향
21
Commit 단위개발의 정신
혼자 가면 빨리 가지만함께 가면 멀리 간다
22
Commit 단위개발 IDEA
Commit 단위로 코딩하고 리뷰하고 토론하고 적용(집단지성의 극대화)
소프트웨어의 취약점을 극복하는 전략
23
Git/Github(1) Review
1) Git과 Github 차이는 ?
• Git은 각 컴퓨터(local) 에 설치되어 소스코드 관리가 가능한 프로그램
• Github는 remote 저장소가 있는 외부서버를 지칭
• Git이라는 Source Control 방법을 Github이 사용
2) Commit과 Push 차이는 ?
• commit은 local 작업폴더에 history를 쌓는 것
- git 서버에 연결하지 않음
• push는 remote 저장소(Github 등)에 history를 쌓는 것
* github.com은 git 서버(remote 저장소)를 운영하는 웹사이트의 하나
24
Git/Github(1) Review
Git/Github을 쓸 수 있다는 것은
• Source Control
• Issue Tracking/Control
• 협업 도구 (Fork / pull request)
• Statistics 등을 쓴다는 것