Visualizing Git Workflows. A visual guide to 539 workflows

Similar documents
Github/Git Primer. Tyler Hague

Review Version Control Concepts

1. Which of these Git client commands creates a copy of the repository and a working directory in the client s workspace. (Choose one.

Branching and Merging

b. Developing multiple versions of a software project in parallel

Tizen/Artik IoT Practice Part 4 Open Source Development

CS 390 Software Engineering Lecture 5 More Git

Getting the files for the first time...2. Making Changes, Commiting them and Pull Requests:...5. Update your repository from the upstream master...

About SJTUG. SJTU *nix User Group SJTU Joyful Techie User Group

Introduction to Git and GitHub. Tools for collaboratively managing your source code.

API RI. Application Programming Interface Reference Implementation. Policies and Procedures Discussion

The Old World. Have you ever had to collaborate on a project by

Software Development I

The Rock branching strategy is based on the Git Branching Model documented by Vincent Driessen.

Lab 08. Command Line and Git

Git for Subversion users

Version Control. Collaborating with git. Tim Frasier

Version control CSE 403

AIS Grid School 2015

Git tutorial. Katie Osterried C2SM. October 22, 2015

Welcome! Virtual tutorial will start at 15:00 GMT. Please leave feedback afterwards at:

Intro to Github. Jessica Young

Software configuration management

CS314 Software Engineering Configuration Management

Introduction to Git and Github

Lecture 6 Remotes. Sign in on the attendance sheet!

Effective Software Development and Version Control

Git(Lab) Tutorial and Hands-On

Windows. Everywhere else

Version Control Systems (Part 1)

FAQ Q: Where/in which branch do I create new code/modify existing code? A: Q: How do I commit new changes? A:

KTH Royal Institute of Technology SEMINAR 2-29 March Simone Stefani -

Using Git to Manage Source RTL

git and the virtue of version control ECE /2/2015

Revision Control. How can 4. Slides #4 CMPT 276 Dr. B. Fraser. Local Topology Simplified. Git Basics. Revision Control:

Version control CSE 403

Tips on how to set up a GitHub account:

Version Control Systems. Copyright 2017 by Robert M. Dondero, Ph.D. Princeton University

CS 320 Introduction to Software Engineering Spring February 06, 2017

Version Control with Git ME 461 Fall 2018

Overview. 1. Install git and create a Github account 2. What is git? 3. How does git work? 4. What is GitHub? 5. Quick example using git and GitHub

Using Git and GitLab: Your first steps. Maurício

Version Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 17, 2018

Versioning with git. Moritz August Git/Bash/Python-Course for MPE. Moritz August Versioning with Git

Introduction to Git. Database Systems DataLab, CS, NTHU Spring, 2018

GIT TUTORIAL. Creative Software Architectures for Collaborative Projects CS 130 Donald J. Patterson

Agenda. - Final Project Info. - All things Git. - Make sure to come to lab for Python next week

Topics covered. Introduction to Git Git workflows Git key concepts Hands on session Branching models. Git 2

Version Control Systems: Overview

Version control CSE 403

Git. Christoph Matthies Software Engineering II WS 2018/19. Enterprise Platform and Integration Concepts group

Recap: Developer's Environment

Lecture 3: Processing Language Data, Git/GitHub. LING 1340/2340: Data Science for Linguists Na-Rae Han

GIT. CS 490MT/5555, Spring 2017, Yongjie Zheng

Introduction to Git and Github Repositories

Git Introduction CS 400. February 11, 2018

Prof. Dr. Marko Boger. Prof. Dr. Christian Johner. Version Management

Beyond git add/commit/push

Git and GitHub. Dan Wysocki. February 12, Dan Wysocki Git and GitHub February 12, / 48

Git Workflows. Sylvain Bouveret, Grégory Mounié, Matthieu Moy

Git for Version Control

Configuration Management

Using GitHub and SourceTree to work with DITA TC repositories

CPSC 491. Lecture 19 & 20: Source Code Version Control. VCS = Version Control Software SCM = Source Code Management

699DR git/github Tutorial

Intro Git Advices. Using Git. Matthieu Moy. Matthieu Moy Git 2016 < 1 / 11 >

Laboratorio di Programmazione. Prof. Marco Bertini

Version control with Git.

A BASIC UNDERSTANDING OF VERSION CONTROL

Git AN INTRODUCTION. Introduction to Git as a version control system: concepts, main features and practical aspects.

Version Control System GIT

Git AN INTRODUCTION. Introduction to Git as a version control system: concepts, main features and practical aspects.

Version Control Systems (VCS)

Introduction to Version Control with Git

GIT VERSION CONTROL TUTORIAL. William Wu 2014 October 7

Tutorial 2 GitHub Tutorial

CSCI 2132: Software Development. Norbert Zeh. Faculty of Computer Science Dalhousie University. Subversion (and Git) Winter 2019

Object Oriented Programming. Week 1 Part 2 Git and egit

Git & Github Fundamental by Rajesh Kumar.

GETTING TO KNOW GIT: PART II JUSTIN ELLIOTT PENN STATE UNIVERSITY

Revision Control. An Introduction Using Git 1/15

Version Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 11, 2017

Lab 01 How to Survive & Introduction to Git. Web Programming DataLab, CS, NTHU

Why To Go With Licensed Version Control Tool When Open Source Tool Is There

Contributing to Insoshi with Git and GitHub. Michael Hartl

Outline The three W s Overview of gits structure Using git Final stuff. Git. A fast distributed revision control system

Hands-On Lab. Getting Started with Git using Team Foundation Server Lab version: Last updated: 12/30/2013

Version Control. So#ware Quality Quality Audit and Cer2fica2on. Master in Computer Engineering. Roberto García

CESSDA Expert Seminar 13 & 14 September 2016 Prague, Czech Republic

How To Use Git. Advanced: Tags & Branches. Mary Kate Trost July 8, 2011

Git. Presenter: Haotao (Eric) Lai Contact:

Git. Charles J. Geyer School of Statistics University of Minnesota. Stat 8054 Lecture Notes

Git. A fast distributed revision control system. Nils Moschüring PhD Student (LMU)

Distributed Version Control

What is git? Distributed Version Control System (VCS); Created by Linus Torvalds, to help with Linux development;

Midterm Next Week. Last year s midterm (which didn t include remotes):

DEAD-SIMPLE VERSION CONTROL FOR YOUR TEAM GIT WITH MATTHEW REIDSMA GRAND VALLEY STATE UNIVERSITY

Managing Network Configurations with Git and GitLab

Version Control: Gitting Started

License. Introduction to Version Control with Git. Local Version Control Systems. Why Use Version Control?

Transcription:

Visualizing Git Workflows A visual guide to 539 workflows

Table of Contents Notation Collaboration Without Review or Branches Merge Conflicts Requesting Code Review Collaboration with Multiple Branches

Notation

Notation This is a single commit. The text is the commit ID. C4 This is a branch (i.e. sequence of commits). Each branch has a different color.

Notation These boxes show the state of a repository at a given location.

Notation C8 C4 This means that is storing two branches. One has 4 commits, the other has 3.

Notation C7 C8 C9 This means that s computer is storing local copies of the same two branches.

Notation C7 C8 C9 C7 C8 C4 Local Copy Remote Copy Same branches, different commits.

Notation I show branches like this: C4 C5 Other tutorials may show this: C5 C4 They mean the same thing

Collaboration Without Review or Branches

There is a master branch on github with two commits. Bob

clones the repository on her computer. Bob

Bob clones the repository on his computer. Bob

commits new code to her master branch Bob

pushes the feature branch to for all to see. Bob

Bob fetches s new changes from. Bob

Bob builds some of his code on s new commit. C4 Bob

C4 Bob pushes his code to for to see. C4 Bob

C4 pulls Bob s changes, so now everyone has the same code. C4 C4 Bob

Merge Conflicts What happens when we change the same file?

Imagine is fixing a bug. She starts by checking out a new purple branch, based off of her local master.

C4 Around the same time, bob pushes a new commit, C4, to master. Now the remote master (on ) is out of sync with s local master branch.

C4 creates a new commit, C5, to fix the bug on her new branch. C5

C4 Now pulls Bob s updated changes from to her computer. C4 C5 Bob put the new feature on the master branch, so when pulls, it goes to her local master branch. Notice how the last commit of the bug fix branch is different from master.

C4 Now adds her local bug fix to her local master branch. She does this by merging her changes from her bug fix branch to her master C4 C6 branch. C5 If there is a conflict with Bob s changes, this results in a special merge commit.

Requesting Code Review Do this for every change outside of SkunkWorks!

creates a new feature branch.

commits new code to her feature branch

pushes the feature branch to for all to see. She creates a pull request and asks for a review.

C4 C4 After addressing a few comments in a new commit, the Koz says Ayyyy that code looks good.

C4 After addresses any review comments and obtains approval, the Koz merges her changes to master. C4

C4 now pulls the new master from, and deletes her old branch. Now everyone has the same code. C4

Collaboration With Multiple branches

There is a master branch on github with two commits. Bob

Both and Bob clone the repository on their computers. Bob

creates a local orange branch. Bob creates a local purple branch. Bob

They both commit new code to each of their branches. C4 Bob

pushes the feature branch to for all to see. She requests a pull request. C4 Bob

The course staff merges s changes with the master branch on. C4 Bob

Both and Bob pull down the changes from master. C4 Bob

Bob merges master into his feature branch. C4 C6 Bob

C4 C6 Bob pushes his feature branch to master and asks for a PR. C4 C6 Bob