6. http://dev.naver.com/d2
Yobi 란?
!
• 설치형 프로젝트 호스팅 소프트웨어
!
• Open Source - Apache2 License
!
• All-in-one - java7+ / online
!
• Windows / Mac / Linux 지원
!
• http://yobi.io
10. http://dev.naver.com/d2
Git 설정하기
$ git config --global user.name “username”
# git commit 시 autor 정보로 사용될 username 설정
$ git config --global user.email "your_email@example.com"
# git commit 시 autor 정보로 사용될 email 설정
• Username
• Email
14. http://dev.naver.com/d2
Local 코드 저장소 만들기
$ mkdir ~/hello-world
# 프로젝트 디렉토리 생성
!
$ cd ~/hello-world
# 생성한 프로젝트 디렉토리로 이동
!
$ git init
# git 저장소 초기화 - 현재 디렉토리에 “.git” 디렉토리가 생성됨
!
$ git remote add origin 원격 저장소 URL
# 원격 저장소로 코드를 보내기 위한 원격저장소 URL 등록
# git remote add origin http://insanehong@yobi.d2fest.kr/insanehong/hello-world
!
$ git remote -v
# 등록된 원격 저장소 확인
• Local 에 새로운 git repository 생성 - git init
15. http://dev.naver.com/d2
commit & push command 이해(1)
$ touch README.md
# vi, text editor 등을 이용하여 README.md 파일을 열고 “hello world” 를 입력하고 저장
!
$ git status
# working directory 의 변경사항 확인
!
$ git add README.md
# commit 이전에 working directory 변경내용을 staging 영역으로 옮김
!
$ git commit -m "커밋할 내용을 최대한 상세히 적는 것이 좋음"
# git commit -m "initialize commit : add readme file"
# 여러줄의 메세지를 남기고 싶은 경우 git commit 만 입력
!
$ git log
# commit 이 제대로 이루어졌는지 확인
!
$ git push origin master
# local repository 이루워진 새로운 commit 을 remote repository 로 push
18. http://dev.naver.com/d2
프로젝트 코드 관리 및 개발 방법
• Branching model
- commit 권한을 가지고 있어야 함.
- 원본 저장소를 기반으로 branch 를 나누어서 개발하는 방법.
- master, devel, feature, hofix 등의 branch 를 나누어서 개발
- gitflow
• Fork & Pull model
- commit 권한을 가지고 있지 않은 사람들 .
- 원본 저장소에 commit 권한이 없어도 변경사항에 대한 반영을 요청 할수 있음
19. http://dev.naver.com/d2
왜 Fork & Pull model 을 실습하나요?
• 많은 Open Source Project 들이 선택하고 있는 코드 기여의 방법
!
• 팀 단위 프로젝트에서도 사용가능 한 방법 중 하나
!
• Yobi 도 Fork & Pull model 를 사용하여 개발하는 중
!
!
23. http://dev.naver.com/d2
Local에 복사한 코드 저장소 만들기
$ git clone 복사한 저장소 URL
# 원본 저장소가 아닌 복사한 저장소의 URL 을 사용.
# git clone http://insanehong@yobi.d2fest.kr/insanehong/yobi-hands-on
!
$ cd ~/yobi-hands-on
# 프로젝트 디렉토리로 이동
!
$ git remote add upstream 원본 저장소 URL
# 원본 저장소 변경사항을 받아오기 위해 원본 저장소를 upstream 으로 등록
# git remote add upstream http://insanehong@yobi.d2fest.kr/D2FEST2014/yobi-hands-on
!
$ git remote -v
# 등록된 원격 저장소 확인. 원본 저장소와 복사한 저장소가 잘 등록돼었는지 확인
• 복사한 저장소 받아오기 - git clone
24. http://dev.naver.com/d2
새로운 파일을 만들어 복사한 저장소에 올리기 (1)
$ cp ./whoami.md ./whoami-00.md
# whoami.md 파일 복사하고 vi, text editor 등을 통해서 내용을 수정.
!
$ git add whoami-00.md
# git add whoami-00.md
!
$ git commit -m "새로운 커밋에 대한 상새한 설명"
# git commit -m "whoami.md 파일을 복사해서 whoami-00.md 파일을 만들고
프로필 입력 함"
!
$ git push origin master
# 복사 한 원격 저장소에 새로운 commit 내용을 push
# 원본저장소가 아닌 복사한 저장소로 push 하는 것이 핵심
• forked repository 에 new commit & push 하기
36. http://dev.naver.com/d2
원본저장소의 변경된 내용을 local 저장소에 반영하기(3)
$ git fetch upstream
# 원본 저장소의 변경된 내용(commit)을 받아온다.
!
$ git merge upstream/master
# 원본 저장소에서 받아온 변경 내용을 local 저장소에 병합
!
$ git log master
# 추가된 commit 내용 확인
• merge 된 commit을 local 저장소의 master branch 에 반영
40. http://dev.naver.com/d2
참고 할 만한 reference
http://www.flickr.com/photos/jakla/499224896/http://www.flickr.com/photos/slworking/8149338837/
• http://git-scm.com/book/ko/ - Progit 한글 번역
!
• 이왕이면 Progit 종이 책을 사서 보시는 것을 추천
!
• https://www.facebook.com/groups/kgugs/ - KGUG
!
• http://insanehong.kr/category/yobi/