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

Similar documents
Visualizing Git Workflows. A visual guide to 539 workflows

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

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

Getting started with GitHub

Software Development I

Configuration Management

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

Tizen/Artik IoT Practice Part 4 Open Source Development

How to Git Better Using Git Workflows (with some help from Atlasssian)

Git better. Collaborative project management using Git and GitHub. Matteo Sostero March 13, Sant Anna School of Advanced Studies

Review Version Control Concepts

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

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

Using GitHub to open up your software project

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

Github/Git Primer. Tyler Hague

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

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

Software Project (Lecture 4): Git & Github

699DR git/github Tutorial

CS314 Software Engineering Configuration Management

Project Management. Overview

What is version control? (discuss) Who has used version control? Favorite VCS? Uses of version control (read)

Online Remote Repositories

b. Developing multiple versions of a software project in parallel

Branching and Merging

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

Intro to Github. Jessica Young

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

TDDC88 Lab 4 Software Configuration Management

Git(Lab) Tutorial and Hands-On

2/8/18. Overview. Project Management. The First Law. What is Project Management? What Are These Changes? Software Configuration Management (SCM)

Version Control with Git ME 461 Fall 2018

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

Version Control. Ioannis N. Athanasiadis. with slides from Solution Perspective Media and Software Carpentry

The More We Get Together... The Islandora Community

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

Laboratorio di Programmazione. Prof. Marco Bertini

git-flow Documentation

GIT FOR SYSTEM ADMINS JUSTIN ELLIOTT PENN STATE UNIVERSITY

CS 390 Software Engineering Lecture 5 More Git

Roles and Responsibilities of Maintainers

GIT : BEST PRACTICES GUIDE BY ERIC PIDOUX DOWNLOAD EBOOK : GIT : BEST PRACTICES GUIDE BY ERIC PIDOUX PDF

Version control CSE 403

Version control CSE 403

What is Subversion and what does it do?

Version Control: Gitting Started

Git tutorial. Katie Osterried C2SM. October 22, 2015

git-pr Release dev2+ng5b0396a

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

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

Use git rm to remove files from workspace

Continuous integration & continuous delivery. COSC345 Software Engineering

Introduction to Git and Github

Version Control. Collaborating with git. Tim Frasier

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

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

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

contribution-guide.org Release

Basics of Git GitHub

Tutorial 2 GitHub Tutorial

Version Control Systems (Part 1)

Lecture 2: Data in Linguistics, Git/GitHub, Jupyter Notebook. LING 1340/2340: Data Science for Linguists Na-Rae Han

Git Introduction CS 400. February 11, 2018

Introduction to Version Control with Git

Version Control Systems: Overview

Lab 08. Command Line and Git

Source Code Control & Bug Tracking

Version Control. Software Carpentry Github s Hello World Git For Ages 4 And Up You need source code control now

Software Revision Control for MASS. Git Basics, Best Practices

CS 390 Software Engineering Lecture 3 Configuration Management

Agile Methodologies via Kanban and GitHub

Release Nicholas A. Del Grosso

A L A TEX-oriented intro to Git

Git, the magical version control

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

Source Code Control. Quiz with Explainations. Hans-Petter Halvorsen, M.Sc.

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

Git! Fundamentals. IT Pro Roundtable! June 17, 2014!! Justin Elliott! ITS / TLT! Classroom and Lab Computing!! Michael Potter!

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

Getting Things GNOME! Documentation

Effective Software Development and Version Control

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

Git. CSCI 5828: Foundations of Software Engineering Lecture 02a 08/27/2015

Rekayasa Perangkat Lunak

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

Git. Presenter: Haotao (Eric) Lai Contact:

Working in Teams CS 520 Theory and Practice of Software Engineering Fall 2018

OER Publishing with LaTeX and GitHub

Lab session 1 Git & Github

Skyhook designs and deploys high performance mobile location solutions, and exists to make location faster, more precise and practical.

TVM & THE APACHE SOFTWARE FOUNDATION

Recap: Developer's Environment

CSC 2700: Scientific Computing

Human-Computer Interaction Design

Using GitHub to Share with SparkFun a

Python Project Example Documentation

Version Control. Version Control

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

CS 320 Introduction to Software Engineering Spring February 06, 2017

Transcription:

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

This Is Not a Tutorial About Git There are many tutorials online.

What is Git? Git is a collaborative, distributed version control system. Everyone has their own branch of the code in a local repository. Each branch has a unique ID You can work entirely separately and never give back... If you want to work collaboratively, you have to combine (merge) branches. Teams need a strategy for how to merge their branches. You can have multiple collaborative branches as well as personal branches. Master, Feature, Test, Release

See http://nvie.com/posts/a-successful-git-branching-model/

1000 Words about Previous Picture Branch Master Develop Feature Release Hotfix Description All other branches trace back to here. Final releases are here. Must always build and pass all tests. Code for next version of Master. Integration Branch. Everyone s code goes back here. Must always build and pass all tests. Working branches with code not ready for integration. May have 1 or more developers. Goes away when merged back into Develop. Code that is preparing to go back to the Master. Only bug fixes. Code that fixes a bug discovered in Master that must be fixed immediately. Merged back to both Master and Develop branches. Only the Master and Develop branches live forever! Only the Master branch is continuous.

What Is the Right Strategy for Your Team? The above is just one example. It works well with continuous integration while allowing feature development. But it could be a lot of overhead for a small team. Your team decides its own branch and merge strategy. Decide on the team discussion list. Have a way for coming to a conclusion that is public. You later decide you have made a mistake. If so, discuss that on the your team discussion list as well. Come to a conclusion as a team. Then change.

A Word about Semantic Versioning See http://semver.org/. Image courtesy https://www.tomaz.me/2013/10 /28/libcloud-and-the-ro ad-to-1-0-release.html

GitHub

What Is GitHub? A public repository for open source code that is managed with Git. Tools for helping you manage your code and your community. And more https://guides.github.com/ GitHub also integrates with JIRA and other online tools Connect a git commit to a JIRA issue.

GitHub Issues See https://guides.github.com/features/issues/for a full guide. Use this feature to discuss your project. Every code commit must be associated with a specific issue. Include the issue number (#xxx) in your commit message. See also https://help.github.com/articles/closing-issues-via-commitmessages/ Create [VOTE] and [DISCUSS] issues for the milestone assignments ( releases ). Votes are +1, 0, -1 Explore other features, see which ones are useful for your team

Pull Requests Notifies others of changes to a common branch. Initiate reviews If you want to contribute a patch to a code branch that you don t have write access to, use a pull request. For simplicity in this class, each team has full access to its project repository. But not the other team s repository. As we go along, you may want to mix and match code between teams. Deciding to accept a contributed pull request to your code base is a team decision.

Code Review

GitHub Pages and Wikis for Documentation Good code documents itself, but https://guides.github.com/features/pages/ https://guides.github.com/features/wikis/ Use these to describe your project. Minimally, anything the instructors need to know to check your milestones. Typically, Use Pages for well-organized, mostly static content Use Wikis for more free-form pages and page organizations.

Announcements Announce your project milestones https://guides.github.com/activities/citable-code/ This gives you a Document Object Identifier (DOI) Useful for citing code This result was produced by this specific version of our code

Some Apache Way Lessons Community over code. Discuss issues publically in an archived, citable manner. Assign yourself to issues. Volunteer Cite the issue(s) associated with each commit. Review pull requests for code bases you can t write to Patches -> Apache Call votes on important decisions Team policies with git branches, code review, issue organization, agile policies Software releases Granting write access to important branches. Make and announce your source code releases. And be prepared for what happens next Documentation, build systems, bug handling, code licensing, code attributions,