CS4961 Software Design Laboratory I Collaboration using Git and GitHub

Slides:



Advertisements
Similar presentations
An Introduction By Sonali and Rasika.  Required for the project  Show the versions of your code in the course of development  Show versions of your.
Advertisements

LECTURE 14 OCT 22, 2010 Git, in graphic form. Change tracking basics.
Hosted Git github. From an alumni (2010)  You know, the more time I spent in industry the better I've understood what a strong advocate you are for the.
Chapter 4 The Online Repository CREATE A REPO ONLINE ON GITHUB.COM.
Version Control with git. Version Control Version control is a system that records changes to a file or set of files over time so that you can recall.
Version control Using Git 1Version control, using Git.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
Git – versioning and managing your software L. Grewe.
ITEC 370 Lecture 16 Implementation. Review Questions? Design document on F, feedback tomorrow Midterm on F Implementation –Management (MMM) –Team roles.
Source Control Primer Patrick Cozzi University of Pennsylvania CIS Spring 2012.
Version Control. How do you share code? Discussion.
Ernst Peter Tamminga Get started with GitHub XCESS expertise center b.v. Netherlands.
Information Systems and Network Engineering Laboratory II DR. KEN COSH WEEK 1.
Git Fundamentals Rochelle Terman 13 January 2014.
Introduction to GitHub Alex Bigazzi Dec. 4, 2013 ITS Lab GitHub Introduction1.
1 GIT NOUN \’GIT\ A DISTRIBUTED REVISION CONTROL AND SOURCE CODE MANAGEMENT (SCM) SYSTEM WITH AN EMPHASIS ON SPEED. INITIALLY DESIGNED AND DEVELOPED BY.
CS 160 and CMPE/SE 131 Software Engineering February 16 Class Meeting Department of Computer Science Department of Computer Engineering San José State.
Git with Eclipse (EGit) /article.html.
Information Systems and Network Engineering Laboratory I DR. KEN COSH WEEK 1.
Using Git with collaboration, code review, and code management for open source and private projects. & Using Terminal to create, and push commits to repositories.
1 Ivan Marsic Rutgers University LECTURE 2: Software Configuration Management.
CS520 Web Programming Version Control with Subversion Chengyu Sun California State University, Los Angeles.
CS102 Basic Computer Science and Programming Assoc. Prof. Jens Allmer Teaching Assistants: Canan Has, Caner Bağcı.
1. A new git is initialized as a remote repository JohnRemote repositoryPeter master C0 CodingWhileBlack.com PROPEL CODING
CS491A Software Design Lab Version Control with CVS and Subversion Chengyu Sun California State University, Los Angeles.
CS5220 Advanced Topics in Web Programming Version Control with Git
Git primer Landon Cox January 19, 2017.
Information Systems and Network Engineering Laboratory II
Source Control Systems
I Don’t Git It: A beginner’s guide to git Presented by Mathew Robinson
Git and GitHub primer.
GIT AND GITHUB WORKSHOP
LECTURE 2: Software Configuration Management
Version Control.
GitHub workflow according to Google
Code Management Releases
Discussion 11 Final Project / Git.
Version control, using Git
Modern Version Control with Git
CS5220 Advanced Topics in Web Programming Version Control with Git
Software Engineering for Data Scientists
Macaualy2 Workshop Berkeley 2017
Version Control with Git accelerated tutorial for busy academics
Akshay Narayan git up to speed with RCS Akshay Narayan
LECTURE 3: Software Configuration Management
The Big Picture
SIG: Open Week 1: GitHub Tim Choh.
Part 1: Editing and Publishing Files
CS122B: Projects in Databases and Web Applications Winter 2018
Advantages Project Career Divide & Conquer Collaboration
Source Code Repository
GitHub A Tool for software collaboration James Skon
Git CS Fall 2018.
Version Control System - Git
Paul S Waters Getting Git.
Introduction to Git and GitHub
CMPE/SE 131 Software Engineering February 14 Class Meeting
GitHub and Git.
Patrick Cozzi University of Pennsylvania CIS Fall 2012
Version Control with Git and GitHub
CS122B: Projects in Databases and Web Applications Winter 2019
GitHub 101 Using Github and Git for Source Control
Git Introduction.
Introduction to Git and Github
Git GitHub.
Introduction to The Git Version Control System
How l learned to work with others instead of working around them.
CS122B: Projects in Databases and Web Applications Spring 2018
Git in Visual Studio.
Presentation transcript:

CS4961 Software Design Laboratory I Collaboration using Git and GitHub Chengyu Sun California State University, Los Angeles

Prerequisites Basic version control concepts Common Git operations: commit, branch, merge Common GitHub (i.e. remote Git repository) operations: clone, push, pull Pro Git, Chapter 1-3 - https://git-scm.com/book/en/v2

Collaboration Models Different ways a team of developers collaborate on a project Centralized De-centralized

Developer (Team Leader) Centralized Model Remote Repository Local Repository Local Repository Local Repository Working Copy Working Copy Working Copy Developer Developer (Team Leader) Developer

About Centralized Model Each developer work on their own branches A team leader is in charge of the important branches (e.g. master) Changes can be copied between branches using merge/rebase Similar to using a centralized VCS

Problems of Centralized Model All developers need write access to the same repository Repository “collaborators” on GitHub Infeasible for project with lots of contributors One inexperienced/malicious developer could mess up the whole repository

Developer (Team Leader) De-Centralized Model GitHub Pull Requests Official Repository Remote Repository Remote Repository Local Repository Local Repository Local Repository Working Copy Working Copy Working Copy Developer (Team Leader) Developer Developer

About De-Centralized Model Each developer work with their own remote repository A team leader maintains the “official” project repository Changes can be shared using Git remote operations or GitHub Pull Requests The more “git way” of collaboration

Collaboration Example De-centralized model Exchange changes using GitHub Pull Requests Developer Role Environment senturain Team Leader Command line cysun Team Member Eclipse

1. Put Project on GitHub Team leader creates the project and a local repository, then push the local repository to GitHub GitHub Local Team Leader

2. Fork Project on GitHub Team member forks the project on GitHub Fork Local Team Leader Team Member

3. Clone the Project to Local Repository Team member clones the project, then imports it into Eclipse GitHub Local Team Leader Team Member

4. Pull Request from Member to Leader Team member commits & pushes changes to his/her GitHub repo, then creates a Pull Request to notify the team leader about the changes Team leader accept the pull request and merges the changes into the team repository Pull Request GitHub Local Team Leader Team Member

5. Pull Request from Member to Him/Herself It’s usually the responsibility of each project member to keep their repository in sync with the official repository Team member can create a Pull Request to him/herself Pull Request GitHub Local Team Leader Team Member