Github Social Computing

ITEC 3870 Software Development II,
Anca Doloc-Mihu and Cengiz Günay

(License: CC BY-SA 4.0)

Prev - Version Control, Next - Project Management with JIRA

GitHub usage pattern example: 2048

So many variants!

2048 GitHub page

2048 GitHub page

What’s forking ??

Stealing from their plate?

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

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

An improved Git workflow: 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

A branching model: gitflow

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