Github Social Computing

ITEC 3870 Software Development II,

(License: CC BY-SA 4.0)

GitHub social computing illustration

GitHub usage pattern example: 2048

[

Original 2048 game GitHub project
]

So many variants!

[

Doge 2048 game variant
]

[

3D 2048 game variant
]

2048 GitHub page

[

2048 GitHub repository page
]

2048 GitHub page

[

2048 GitHub repository page details
]

What’s forking ??

Fork on a plate of spaghetti

Stealing from their plate?

Fork in a road

More like a fork in the road.

GitHub encourages social computing

Common GitHub usage pattern: fork & modify

  1. Fork (clone) someone’s project into your account
  2. Modify and make it your own
  3. Share with original project through “pull requests”

Our GitHub usage pattern: push & pull

  1. Several users collaborate on same repo
  2. Open GitHub account and we associate you with private project repos
  3. Install local client git on Windows, Mac, Linux
  4. Clone the repo on your local computer (don’t fork on GitHub!)
  5. Modify, then push and pull
  6. Communicate your pushes with your teammates!
  7. (Optional) Make branches and switch between them

Our Git workflow is centralized

Centralized Git workflow diagram
Chacon & Straub’s Pro Git book: 5.1 Distributed Git - Distributed Workflows

An improved Git workflow: Integration Manager

Git workflow with an integration manager

Can we adopt features from integration manager?

Yes!

  • Use branches
  • Send pull requests (PRs) within the same repo
  • Have someone to review code and accept PR

Ultimate Git workflow: Benevolent Dictator

Git workflow with a benevolent dictator

A branching model: gitflow

Gitflow branching model diagram

Gitflow references

Original article: “A successful Git branching model” by Vincent Driessen (2010) and more recent Using git-flow to automate your git branching workflow (2010)

Or simply use the GitFlow extension to git

Atlassian Tutorial: Comparing Workflows: Centralized, Feature Branch, Gitflow, Forking Workflows

Home