22
Hiro Yoshioka, Development Unit, Rakuten, Inc. @hyoshiok https://github.com/hyoshiok Introduction to Git and GitHub #git_nyan

Introduction to Git and GitHub #git_nyan

  • View
    2.566

  • Download
    0

Embed Size (px)

DESCRIPTION

Git and GitHub by Hiro Yoshioka March 25th, 2014 http://atnd.org/events/48075

Citation preview

Page 1: Introduction to Git and GitHub #git_nyan

Hiro Yoshioka, Development Unit,!Rakuten, Inc.!@hyoshiok!

https://github.com/hyoshiok!

Introduction to Git and GitHub

#git_nyan!

Page 2: Introduction to Git and GitHub #git_nyan

2

Agenda

•  Git •  GitHub

Page 3: Introduction to Git and GitHub #git_nyan

3

Git?

•  History – Linus – Linux creator, 2005 – Git

•  Reliable •  Fast •  Distributed •  Content Manager •  Suitable for large scale development

https://www.youtube.com/watch?v=4XpnKHJAok8

Page 4: Introduction to Git and GitHub #git_nyan

4

Tech Talk: Linus Torvalds on git

https://www.youtube.com/watch?v=4XpnKHJAok8

Page 5: Introduction to Git and GitHub #git_nyan

5

Linux

•  Commits 491K+ •  Contributors 12K+ •  Lines of code 16M+ •  License GPL v2 •  http://www.ohloh.net/p/linux

3/24/2014 •  Requirements from Linux

– Performance and distributed nature – Security and trust issues

Page 6: Introduction to Git and GitHub #git_nyan

6

Why is distributed VCS better?

•  Distributed vs. Centralized – Offline/Local

•  Fast

–  Isolation •  Experimental work •  No committer right

– Reliable: trust and security •  Not a single point of failure/natural

replication of data •  Checksum everything (SHA-1 160bit)

Page 7: Introduction to Git and GitHub #git_nyan

7

Art of Git

•  Make separate commits for logically separate changes.

•  Describe your changes well. •  Use imperative mood

•  E.g., Fix bug-1234

https://github.com/git/git/blob/master/Documentation/SubmittingPatches

Page 8: Introduction to Git and GitHub #git_nyan

8

Art of Git

•  Work flow – GitHub Flow

•  http://guides.github.com/overviews/flow/

– Create branch – Add commits – Open a pull request – Discuss and review the code – Merge and deploy

Page 9: Introduction to Git and GitHub #git_nyan

9

GitHub

•  Git hosting site. https://github.com/

Page 10: Introduction to Git and GitHub #git_nyan

10

GitHub Punch Card

https://github.com/RyuPiT/SharePla/graphs/punch-card

http://www.slideshare.net/hyoshiok/business-application-development-course-at-aiit

Page 11: Introduction to Git and GitHub #git_nyan

11

GitHub Punch Card

https://github.com/teampuma/Sorejanai/graphs/punch-card

Page 12: Introduction to Git and GitHub #git_nyan

12

Github and Social Coding

•  Fork and Pull Request – You don’t need a write access

privilege. •  Collaboration model

Page 13: Introduction to Git and GitHub #git_nyan

13

Most of github hosted projects did not have any license.

http://www.blackducksoftware.com/resources/infographics/deep-license-data

Page 14: Introduction to Git and GitHub #git_nyan

14

Why do we need OSS license?

•  Collaboration model •  Ban Free riders

– The Tragedy of the Commons

Page 15: Introduction to Git and GitHub #git_nyan

15

Open source and Bazaar

•  Open source software (OSS) – software license

•  Bazaar – Software development model – global distributed collaborative work

Page 16: Introduction to Git and GitHub #git_nyan

16

How can we choose it?

http://choosealicense.com

Page 17: Introduction to Git and GitHub #git_nyan

17

OSS Community •  Typical OSS community

–  Charisma, top programmers (e.g., Matsumoto san (Ruby), Linus Torvalds (Linux))

–  Committers (top notch programmers who have the right to add/modify the OSS)

–  Contributors (programmers who submit bug fixes, new proposals, patches)

–  Casual users (report bugs, ask questions, etc)

committers

charisma

contributors

casual users

Matz Yugui

Linus

Greg K Hartman

http://commons.wikimedia.org/wiki/File%3AGreg_Kroah-Hartman_lks08.jpg

Page 18: Introduction to Git and GitHub #git_nyan

18

Hacker Ethics

•  Sharing •  Openness •  Decentraization •  Free access to computers •  World improvement •  Levy, Steven. (1984, 2001). Hackers:

Heroes of the Computer Revolution (updated edition). Penguin. http://www.gutenberg.org/ebooks/729

Page 19: Introduction to Git and GitHub #git_nyan

19

The Hacker Way (Facebook) IPO 2012

•  Code wins arguments •  Continuous Improvement and

Iteration •  Open and Meritocratic •  Hackathon •  Bootcamp •  http://www.wired.com/business/

2012/02/zuck-letter/

Page 20: Introduction to Git and GitHub #git_nyan

20

•  Be Hacker. •  Make the world a better place.

Page 21: Introduction to Git and GitHub #git_nyan

21

Advertisement

•  We are hiring. •  http://corp.rakuten.co.jp/careers/

entry/ •  http://corp.rakuten.co.jp/careers/

engineer/

Page 22: Introduction to Git and GitHub #git_nyan

22

Appendix.

•  Kernel Code Reading Party •  http://kernel.doorkeeper.jp/

events/9547 – Date: March 28th, FRI – Time: 19:00 (Door Open), 19:30

(Start), 21:30 (End) –  https://www.google.com/maps/place/35%C2%B037'17.3%22N

+139%C2%B044'54.7%22E/@35.6214655,139.7485181,15z/data=!3m1!4b1!4m2!3m1!1s0x0:0x0?hl=en