xecon2015 :: [1-3] 김덕홍 - git workflow with github
TRANSCRIPT
insanehong@NAVER working with the IoT Platform
Korea Git User Group FounderLike Git, Node.js, Javascript, OpenSource
CVCS• 버전 관리의 대표적인 방식• 하나의 서버와 다수의 클라이언트• CVS, Subversion, Perforce• 서버가 다운될 경우 버전관리 불가능
• 서버문제로 스냅샷을 제외한 이력의 손실 가능
$ cat .git/HEADref: refs/heads/master
$ tree .git/refs.git/refs !"" heads # $"" master $"" tags
2 directories, 1 file
$ cat .git/refs/heads/master1a8236f284791342fb8340f9e38531fa471e2823
자 지금부터 확인 들어갑니다.!!
add, commit, push, branch, checkout, merge, rebase, fetch, pull, reset, stash, tag, status, cherry-pick, log, diff, bisect, blame…
평소에 자주 사용하는 명령어만 해도….
Workingdirectory
index
objectdatabase
README.mdhello world
blob 3b18e512
README.md 3b18e512
$ git add README.md
$ git is-files --staged #index 에 등록된 파일 확인 100644 3b18e512dba79e4c8300dd08aeb37f8e728b8dad 0 README.md
$ tree .git/objects.git/objects/ !"" 3b # $"" 18e512dba79e4c8300dd08aeb37f8e728b8dad !"" info $"" pack
blob(zlib compressed SHA1)
Workingdirectory
index
objectdatabase
README.mdhello world
blob 3b18e512 tree 43b71c90 README.md commit e0d5a92d add README.md file
README.md 3b18e512
$ git commit -m "add README.md file"
headertree 37\x00
content100644 README.md 3b18e512dba79e4c8300dd08aeb37f8e728b8dad
sha1sum43b71c903ff52b9885bd36f3866324ef60e27b9b
TREE OBJECT
COMMIT OBJECTheader
commit 185\x00
content tree 43b71c903ff52b9885bd36f3866324ef60e27b9b author insanehong <[email protected]> 1424843983 +0900 committer insanehong <[email protected]> 1424843983 +0900
add README.md file
sha1sume0d5a92d33f528147e62a87cd5589e9b4d78bb54
e0d5a92
commit
add README.md file
sizetree 43b71c90
43b71c90tree size
blob 3b18e512REAMDE.mdparent nullauthor insane
committer insane
blobhello world
3b18e512size
GIT OBJECTS
e0d5a92
commit
add README.md file
sizetree 43b71c90
43b71c90tree size
blob 3b18e512REAMDE.mdparent nullauthor insane
committer insane
blobhello world
3b18e512size
blobThe MIT License (MIT)
Copyright (c) ..
38c6bf23size
e0d5a92
commit
add LICENSE.md file
sizetree ffcdb59parent e0d5a92author insane
committer insane
ffcdb59tree size
blob
3b18e512
LICENSE.md
blob REAMDE.md
38c6bf23
• maint: maint tracks the commits that should go into the next "maintenance release”
• master: master tracks the commits that should go into the next release
• next: next is intended as a testing branch for topics being tested for stability for master.
• pu: pu is an integration branch for things that are not quite ready for inclusion yet
• topic: Make a side branch for every topic
- recommended workflows with Git in git Manual -
$ man gitworkflows
https://guides.github.com/introduction/flow/index.html
clone
A
origin remote repository
A’s fork repository
fork
clone
B
B’s fork repository
fork
clone
C
C’s fork repository
fork
open source contribution workflow
bower/bower Pull Request
fork
local/bower
clonepush
insanehong/bower
fetch
commit
merge
protected branches
• Can't be force pushed
• Can't be deleted
• Can't have changes merged into them until required status checks pass
• close• closes• closed• fix• fixes• fixed• resolve• resolves• resolved
Keywords for closing issues
https://help.github.com/articles/closing-issues-via-commit-messages/
Git is a just tool! 본 자료는 15. 11.14 XECon 2015 에서 발표된 “Git Workflow with GitHub” 의 발표내용을 담고 있습니다.
본 자료는 크리에이티브 커먼즈 저작자표시-비영리-변경금지(CC BY-NC-ND) 3.0 Unported 라이선스에 따라 이용할 수 있습니다.
본 자료에 사용 된 이미지들은 Creative Common License 를 따르며 이미지 출처는 해당 이미지 하단에 기제 되어 있습니다.
twitter : @insanehongemail : [email protected]