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

Similar documents
Version Control: Gitting Started

GETTING STARTED WITH. Michael Lessard Senior Solutions Architect June 2017

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

How to be a git. Dominic Mitchell

#25. Use Source Control in a Single- Developer Environment

Windows. Everywhere else

So#ware(Project. Lecture'4. Wouter'Swierstra. So#ware(project( (Lecture(4 1

Git for Subversion users

Software Project (Lecture 4): Git & Github

2 Initialize a git repository on your machine, add a README file, commit and push

Revision Control. An Introduction Using Git 1/15

git Version: 2.0b Merge combines trees, and checks out the result Pull does a fetch, then a merge If you only can remember one command:

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

Tutorial: Getting Started with Git. Introduction to version control Benefits of using Git Basic commands Workflow

Code and data management with Git

Submitting your Work using GIT

Git, the magical version control

Git & Github Fundamental by Rajesh Kumar.

Git Guide. Meher Krishna Patel. Created on : Octorber, 2017 Last updated : October, More documents are freely available at PythonDSP

Effective Software Development and Version Control

Introduction to Git and Github

Software Development I

Git. SSE2034: System Software Experiment 3, Fall 2018, Jinkyu Jeong

A Brief Introduction to Git. Sylverie Herbert (based on slides by Hautahi Kingi)

Git Introduction CS 400. February 11, 2018

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

John DeDourek Professor Emeritus Faculty of Computer Science University of New Brunswick GIT

Software Development. Using GIT. Pr. Olivier Gruber. Laboratoire d'informatique de Grenoble Université de Grenoble-Alpes

Visualizing Git Workflows. A visual guide to 539 workflows

Assumptions. GIT Commands. OS Commands

Version Control. Version Control

Introduction to Git and GitHub for Writers Workbook February 23, 2019 Peter Gruenbaum

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

Git. A Distributed Version Control System. Carlos García Campos

Object Oriented Programming. Week 1 Part 2 Git and egit

Basic git. Interactive.

GIT. A free and open source distributed version control system. User Guide. January, Department of Computer Science and Engineering

Managing Network Configurations with Git and GitLab

Introduction to GIT. Jordi Blasco 14 Oct 2011

Introduction to Git and Github Repositories

Lab Exercise Git: A distributed version control system

How to git with proper etiquette

AIS Grid School 2015

1/20/13 Git tutorial. Git tutorial. Mike Nolta. file:///users/nolta/github/reveal.js/git.html?print-paper#/ 1/31

Introduction to Version Control

Revision Control and GIT

Github/Git Primer. Tyler Hague

GIT FOR SYSTEM ADMINS JUSTIN ELLIOTT PENN STATE UNIVERSITY

Revision control. INF5750/ Lecture 2 (Part I)

Eugene, Niko, Matt, and Oliver

A BASIC UNDERSTANDING OF VERSION CONTROL

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

213/513/613 Linux/Git Bootcamp. Cyrus, Eugene, Minji, Niko

Lecture 6 Remotes. Sign in on the attendance sheet!

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

Tizen/Artik IoT Practice Part 4 Open Source Development

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

Git Tutorial. André Sailer. ILD Technical Meeting April 24, 2017 CERN-EP-LCD. ILD Technical Meeting, Apr 24, 2017 A. Sailer: Git Tutorial 1/36

Version Control. Version Control

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

Version Control with GIT

Agenda. Several projects are using GIT Developer(s) Junio Hamano, Linus Torvalds. Qt Stable release (January 31, 2011)

Git tutorial. Katie Osterried C2SM. October 22, 2015

EECS 470 Lab 4. Version Control System. Friday, 31 st January, 2014

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

Project Management. Overview

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

Contributing to Insoshi with Git and GitHub. Michael Hartl

git commit --amend git rebase <base> git reflog git checkout -b Create and check out a new branch named <branch>. Drop the -b

Fundamentals of Git 1

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

The Intro. Aaron Bartell Director of IBM i Innovation. Copyright 2015 Aaron Bartell

CS 390 Software Engineering Lecture 5 More Git

VCS VERSION CONTROL SYSTEMS

Version Control Systems (VCS)

Distributed Version Control (with Git)

GIT Princípy tvorby softvéru, FMFI UK Jana Kostičová,

How to version control like a pro: a roadmap to your reproducible & collaborative research

MOOSE-Based Application Development on GitLab

CS314 Software Engineering Configuration Management

Version control with Git.

Overview. during this tutorial we will examine how touse git from the command line. finally we will explore a graphical visualisation of git activity

Version Control Systems

1. Git. Robert Snapp

CS 390 Software Engineering Lecture 4 - Git

Algorithm Engineering

Use git rm to remove files from workspace

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

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

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

a handful of Git workflows for the agilist steven harman twitter: stevenharman

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

Advanced Operating Systems Control Versioning with GIT. Giuseppe Massari

Version Control. Collaborating with git. Tim Frasier

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

Index. Alias syntax, 31 Author and commit attributes, 334

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

Lab 08. Command Line and Git

G E T T I N G S TA R T E D W I T H G I T

Git for Newbies. ComMouse Dongyue Studio

Transcription:

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

WHO DOESN T USE VERSION CONTROL?

VERSION CONTROL WHO?

OH BOY.

WHY YOU NEED VERSION CONTROL

GIT

GIT

WHY GIT IS AWESOME

HOW GIT WORKS

WORKING DIRECTORY

WORKING DIRECTORY add INDEX (STAGING AREA)

WORKING DIRECTORY add INDEX (STAGING AREA) commit LOCAL REPOSITORY

WORKING DIRECTORY add INDEX (STAGING AREA) commit LOCAL REPOSITORY push REMOTE REPOSITORY

My-Computer: mreidsma$ _

SCARY My-Computer: mreidsma$ _

$cd MyAwesomeApp

$cd MyAwesomeApp $touch index.html

$cd MyAwesomeApp $touch index.html $git init Initialized empty Git repository in /MyAwesomeApp/.git/

$cd MyAwesomeApp $touch index.html $git init Initialized empty Git repository in /MyAwesomeApp/.git/ $git add.

$cd MyAwesomeApp $touch index.html $git init Initialized empty Git repository in /MyAwesomeApp/.git/ $git add. $git status # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # #! new file: index.html #

$git commit -m First commit [master (root-commit) 7ce2952] First commit 1 file changed, 2 insertions(+) create mode 100644 index.html

$git commit -m First commit [master (root-commit) 7ce2952] First commit 1 file changed, 2 insertions(+) create mode 100644 index.html $git remote add origin git@github.com:gvsulib/ awesomeapp.git

$git commit -m First commit [master (root-commit) 7ce2952] First commit 1 file changed, 2 insertions(+) create mode 100644 index.html $git remote add origin git@github.com:gvsulib/ awesomeapp.git $git push origin master

BRANCHING

[master]

[master]

[master]

[master]

[master]

[master] [branch]

[master] [branch]

[master] merge [branch]

BRANCHES ARE CHEAP

$cd MyAwesomeApp

$cd MyAwesomeApp $git branch newfeature

$cd MyAwesomeApp $git branch newfeature $git checkout newfeature Switched to branch newfeature

$cd MyAwesomeApp $git branch newfeature $git checkout newfeature Switched to branch newfeature <!-- AWESOME FEATURE ADDING ACTION HERE -->

$cd MyAwesomeApp $git branch newfeature $git checkout newfeature Switched to branch newfeature <!-- AWESOME FEATURE ADDING ACTION HERE --> $git add.

$cd MyAwesomeApp $git branch newfeature $git checkout newfeature Switched to branch newfeature <!-- AWESOME FEATURE ADDING ACTION HERE --> $git add. $git status # On branch newfeature # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # #! modified: index.html #

$git commit -m Best feature ever [newfeature 18q7d58] Best feature ever 1 file changed, 1 insertions(+)

$git commit -m Best feature ever [newfeature 18q7d58] Best feature ever 1 file changed, 1 insertions(+) $git checkout master Switched to branch master

$git commit -m Best feature ever [newfeature 18q7d58] Best feature ever 1 file changed, 1 insertions(+) $git checkout master Switched to branch master $git merge newfeature Updating 7ce2952..18q7d58 index.html 1 + 1 file changed, 1 insertion(+)

BUT YOU CHANGED THE FILE

WORKFLOWS

LOCAL

LOCAL REMOTE

LOCAL LOCAL

LOCAL REMOTE LOCAL

LOCAL WEB SERVER REMOTE LOCAL

LOCAL WEB SERVER REMOTE LOCAL

HOW WE DO IT @ GVSU

GITHUB

GITHUB WEB SERVER

MASTER IS ALWAYS DEPLOYABLE

$ssh username@gvsu.edu

$ssh username@gvsu.edu $git mkdir MyAwesomeApp

$ssh username@gvsu.edu $git mkdir MyAwesomeApp $git cd MyAwesomeApp

$ssh username@gvsu.edu $git mkdir MyAwesomeApp $git cd MyAwesomeApp $git clone https://github.com/gvsulib/ awesomeapp.git Cloning into awesomeapp... remote: Counting objects: 1, done. remote: Compressing objects: 100% (1/1), done. remote: Total 1 (delta 21), reused 1 (delta 14) Unpacking objects: 100% (1/1), done.

$ssh username@gvsu.edu

$ssh username@gvsu.edu $git cd MyAwesomeApp

$ssh username@gvsu.edu $git cd MyAwesomeApp $git pull origin master

BUT

https://gist.github.com/3138516

OTHER FANCY FEATURES

.gitignore

diff

log

filter-branch

stash

reset

RESOURCES Download git http://git-scm.com Git Reference http://gitref.org Git and Github Bootcamp http://help.github.com/articles/set-up-git John Fink: A Gentle Introduction to Modern Version Control http://acrl.ala.org/techconnect/?p=1191 Flashbake - automated git for writers http:/bitbucketlabs.net/flashbake

THANK YOU reidsmam@gvsu.edu @mreidsma http://github.com/mreidsma http://github.com/gvsulib