S18 Modern Version Control with Git

Similar documents
F17 Modern Version Control with Git. Aaron Perley

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

Version Control: Gitting Started

Version Control with Git ME 461 Fall 2018

A BASIC UNDERSTANDING OF VERSION CONTROL

GETTING STARTED WITH. Michael Lessard Senior Solutions Architect June 2017

Version control system (VCS)

Software Revision Control for MASS. Git Basics, Best Practices

INTRODUCTION TO DATA SCIENCE

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

Version control with Git.

Introduction to Git and Github

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

Git for Version Control

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

AIS Grid School 2015

Using git to download and update BOUT++

Software Project (Lecture 4): Git & Github

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

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

Laboratorio di Programmazione. Prof. Marco Bertini

L Modeling and Simulating Social Systems with MATLAB

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

Lecture 2 Making Simple Commits

Computer Science Design I Version Control with Git

Version Control Systems

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

Version Control Systems (Part 1)

Revision control Advanced git

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

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

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

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

Version Control Systems (VCS)

INET

Ingegneria del Software Corso di Laurea in Informatica per il Management (D)VCS. Davide Rossi Dipartimento di Informatica Università di Bologna

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

Windows. Everywhere else

Lab Exercise Git: A distributed version control system

Version Control Systems: Overview

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

Version Control with GIT

TDDC88 Lab 4 Software Configuration Management

Using GitHub to Share with SparkFun a

CSE 331 Software Design & Implementation

How to be a git. Dominic Mitchell

CSE 391 Lecture 9. Version control with Git

Introduction to Git and Github Repositories

I m an egotistical bastard, and I name all my projects after myself. First Linux, now git. Linus Torvalds, creator of Linux and Git

Having Fun with Social Coding. Sean Handley. February 25, 2010

Version control CSE 403

GIT VERSION CONTROL TUTORIAL. William Wu 2014 October 7

CS 320 Introduction to Software Engineering Spring February 06, 2017

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

Algorithm Engineering

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

Version control. what is version control? setting up Git simple command-line usage Git basics

Working with GIT. Florido Paganelli Lund University MNXB Florido Paganelli MNXB Working with git 1/47

Git Introduction CS 400. February 11, 2018

Push up your code next generation version control with (E)Git

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

Software Development I

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

Technology Background Development environment, Skeleton and Libraries

A Practical Introduction to Version Control Systems

Software Revision Control for MASS. Git Installation / Configuration / Use

Git. Ľubomír Prda. IT4Innovations.

[Software Development] Development Tools. Davide Balzarotti. Eurecom Sophia Antipolis, France

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

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

Git: Distributed Version Control

Θερινό Σχολείο, Ιουλίου git. Αχιλλέας Πιπινέλης. Μονάδα Αριστείας ΕΛ/ΛΑΚ ΤΕΙ Αθήνας

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

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

Version Control with GIT: an introduction

Effective Software Development and Version Control

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

Introduction to Version Control with Git

EGit in Eclipse. Distributed Verzion Control Systems

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

Basics of Git GitHub

Git & Github Fundamental by Rajesh Kumar.

Version Control. Version Control

Version control CSE 403

Fundamentals of Git 1

Version Control with Git

How to be a 1337 h4ck3r: Git + Linux

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

Lab 08. Command Line and Git

Git for Newbies. ComMouse Dongyue Studio

Human Version Control

Online Remote Repositories

Week 5. CS 400 Programming III

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

Version Control. Version Control

Git: Distributed Version Control

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

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

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

Lecture 6 Remotes. Sign in on the attendance sheet!

Transcription:

98-174 S18 Modern Version Control with Git Aaron Perley (aperley@andrew.cmu.edu) Ilan Biala (ibiala@andrew.cmu.edu) https://www.andrew.cmu.edu/course/98-174/

Why should you take this course? Version control software is an essential part of the every-day of the modern software team's professional practices. -- Atlassian Git Tutorial

Why should you take this course? From a 2013 Fox News report:

Git Github

What this course isn t For seasoned Linuxbeards

What this course isn t A crashcourse on git commands

What this course is about Forming a mental model for how git interacts with versions of files Understanding how to use git (and a bit of Github) in a collaborative setting

Course Website https://www.andrew.cmu.edu/course/98-174/

Syllabus No prerequisites 3 Free Elective credits No official textbook, but we recommend Pro Git by Scott Chacon (free, online) No office hours unless specifically requested Email Aaron and Ilan if you have questions Slides and lecture notes posted online

More Syllabus 2 unexcused absences allowed 3+ unexcused absences and we have to give you a No Pass Email us if you re going to miss for a legitimate reason More than 15 minutes late = unexcused Discussion of in-class and homework assignments is encouraged, but write up your own answers No late work Email us if you think you need an extension

Grade Breakdown Pass/No Credit. Need to get 70% out of: 20% Weekly Lecture Attendance 30% Submitted work (often in-class) 20% Midterm (Date TBA) 30% Final (Date TBA)

Waitlist If you are on the waitlist, please keep coming to class. There is a 99.99999% chance you will be able to get in off the waitlist

What is Version Control?

Goals of Version Control Be able to search through revision history and retrieve previous versions of any file in a project Be able to share changes with collaborators on a project Be able to confidently make large changes to existing files https://www.atlassian.com/git/tutorials/what-is-version-control

Named Folders Approach Easy Familiar Can be hard to track Memory-intensive Can be slow Hard to share No record of authorship

Centralized Version Control Systems A central repository determines the order of versions of the project Collaborators push changes to the files to the repository Any new changes must be compatible with the most recent version of the repository. If it isn t, somebody must merge it in. Examples: SVN, CVS, Perforce

Distributed Version Control Systems (DVCS) No central repository, each developer has their own copy Developers work on their own copy of the repository locally and sync changes with others Commit Dev A s Repo Push/Fetch Push/Fetch Dev C s Repo Push/Fetch Commit Push/Fetch Commit Examples: Git, Mercurial Push/Fetch Dev B s Repo Commit Push/Fetch Dev D s Repo Distributed Version Control System

Git Created in 2005 by Linus Torvalds to maintain the Linux kernel. Oh, and he created that too. Distributed VCS https://www.git-scm.com/

Installing Git https://www.andrew.cmu.edu/course/98-174/lecturenotes/installing_git.html

Git Init Initializes a new git repository in an existing folder The folder is now called a git repository Changes to any files in the folder (and its subfolders) can be tracked by git Git stores its metadata in a hidden.git folder in the repository root $ mkdir myrepo $ cd myrepo $ git init

Git Clone Download an existing repository (and all of its history!) $ git clone https://github.com/autolab/autolab.git $ cd Autolab

Git Log List the history of a repository $ git log Press q to exit, use arrow keys (or j,k) to scroll

What is fad72e4? Commits are uniquely represented by SHA-1 hashes The first 6-7 characters of a hash are usually enough to identify it uniquely from all the other commits in the repository This is called the short hash

Okay, so what is a commit? 1. A snapshot of all the files in a project at a particular time. 2. A checkpoint in your project you can come back to or refer to. Anything else? 3. The changes a commit makes over the previous commit

Homework One hour or less a week Released on Thursdays after class, due next Thursday at beginning of class Posted on the course website Email us if you have questions, I ll be happy to help you out! Submit on Autolab: https://autolab.andrew.cmu.edu/courses/98174-s18/