98-174 F15 Modern Version Control with Git Andrew Benson https://www.andrew.cmu.edu/course/98-174/ Sign in on the attendance sheet!

Slides:



Advertisements
Similar presentations
CIS 528 Introduction to Big Data Computing and Analysis
Advertisements

Today’s Agenda  Syllabus CS2336: Computer Science II.
LECTURE 13 OCT 18, 2010 A different take on more scripting stuff;& version control.
My Policies and Some Advice for Doing Well in this Course.
My Policies and Some Advice for Doing Well in this Course.
COMP 110 Introduction to Programming Mr. Joshua Stough August 22, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307.
CIS 310 Management Information Systems Course Overview Guthrie, Summer 2014.
COMP 14 – 02: Introduction to Programming Andrew Leaver-Fay August 31, 2005 Monday/Wednesday 3-4:15 pm Peabody 217 Friday 3-3:50pm Peabody 217.
G51FSE Version Control Naisan Benatar. Lecture 5 - Version Control 2 On today’s menu... The problems with lots of code and lots of people Version control.
1 CSE 390 “Lecture 11” Version control with Git slides created by Ruth Anderson, images from
Introduction to Git and Github Joshua imtraum.com.
Git for Version Control These slides are heavily based on slides created by Ruth Anderson for CSE 390a. Thanks, Ruth! images taken from
Welcome to CS 115! Introduction to Programming. Class URL Please write this down!
1 HCC Brandon Independent Study Orientation Power Point Instructor: Tiffany Cantrell.
CSE 501N Fall ‘09 00: Introduction 27 August 2009 Nick Leidenfrost.
Course Overview Sarah Diesburg  Bobby Roy COP 5641 / CIS 4930.
COMP Introduction to Programming Yi Hong May 13, 2015.
Why you should be using Version Control. Matt Krass Electrical/Software Engineer November 22, 2014.
MGS 351 Introduction to Management Information Systems
Git – versioning and managing your software L. Grewe.
Lecture 0 Course Information Econ 340. Lecture 1: Intro2 Announcements Course time: 8:30 – 9:50 AM –Thus NOT “Michigan Time” –Reason: To give you time.
GIT An introduction to GIT Source Control. What is GIT (1 of 2) ▪ “Git is a free and open source distributed version control system designed to handle.
Prof. Barbara Bernal NEW Office in J 126 Office Hours: M 4pm - 5:30 PM Class Lecture: M 6 PM - 8:30 in J133 Weekly Web Lecture between Tuesday to Sunday.
Welcome to CS 101! Introduction to Computers Spring 2015 This slide is based on Dr. Keen slides for CS101 day sections, with some modifications.
CS355 Advanced Computer Architecture Fatima Khan Prince Sultan University, College for Women.
Git workflow and basic commands By: Anuj Sharma. Why git? Git is a distributed revision control system with an emphasis on speed, data integrity, and.
Introduction to Databases Computer Science 557 September 2007 Instructor: Joe Bockhorst University of Wisconsin - Milwaukee.
Course Information Sarah Diesburg Operating Systems COP 4610.
ICS102: Introduction To Computing King Fahd University of Petroleum & Minerals College of Computer Science & Engineering Information & Computer Science.
Course Overview Ted Baker  Andy Wang COP 5641 / CIS 4930.
1 GIT NOUN \’GIT\ A DISTRIBUTED REVISION CONTROL AND SOURCE CODE MANAGEMENT (SCM) SYSTEM WITH AN EMPHASIS ON SPEED. INITIALLY DESIGNED AND DEVELOPED BY.
Dr. A. Al-Saadi Chemistry 101 Sections: 4, 5, and 6 SMW 8:00AM – 8:50AM Textbook: Chemistry by Zumdahl Instructor: Dr. Abdulaziz Al-Saadi ( د. عبدالعزيز.
COP4610/CGS5765 Operating Systems Syllabus. Instructor Xin Yuan Office: 168 LOV Office hours: W M F 9:10am – 10:00am, or by appointments.
Course Overview Mark Stanovich COP 5641 / CIS 4930.
Version Control System Lisa Palathingal 03/04/2015.
1 CS 101 Today’s class will begin about 5 minutes late We will discuss the lab scheduling problems once class starts.
Welcome to CS 101! Introduction to Computers Fall 2015.
CS151 Introduction to Digital Design Noura Alhakbani Prince Sultan University, College for Women.
Version Control and SVN ECE 297. Why Do We Need Version Control?
Summer School Orientation. General Program Overview You will complete 10 hours with a teacher and 50 hours of independent work All classes must be complete.
SECTION 1: CODE REASONING + VERSION CONTROL slides borrowed and adapted from Alex Mariakis and CSE 390a Justin Bare & Deric Pang.
Course Information CSE 2031 Fall Instructor U. T. Nguyen /new-yen/ Office: CSEB Office hours:  Tuesday,
ICS 151 Digital Logic Design Spring 2004 Administrative Issues.
It’s not just an insult from Harry Potter!. What is Git? Distributed Version Control System (DVCS) – Compared to a Centralized Version Control System.
Lecture 5 Remotes Sign in on the attendance sheet! Turn in homework at the front!
Welcome to CS 115! Introduction to Programming Spring 2016.
CSc 120 Introduction to Computer Programing II
Introduction to Computers Spring 2017
Networking CS 3470, Section 1 Sarah Diesburg
CS 450/550 Operating Systems Loc & Time: MW 1:40pm-4:20pm, 101 ENG
Andy Wang Object Oriented Programming in C++ COP 3330
CS101 Computer Programming I
Discussion #11 11/21/16.
Git and GitHub primer.
Introduction to Programming
A Simple Introduction to Git: a distributed version-control system
Discussion 11 Final Project / Git.
Modern Version Control with Git
Course Information Mark Stanovich Principles of Operating Systems
Welcome to CS 1010! Algorithmic Problem Solving.
Course Overview - Database Systems
Andy Wang Object Oriented Programming in C++ COP 3330
Introduction to Computers Fall 2017
Introduction to Computers Spring 2018
Introduction to Computers Fall 2018
Introduction to Computers SPRING 2019
Git CS Fall 2018.
Using Github and Github Organization in this Course
Version Control with Git and GitHub
Lecture 1 Class Overview
Presentation transcript:

F15 Modern Version Control with Git Andrew Benson Sign in on the attendance sheet!

Why should you take this course? To become smarter than Fox News

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

Grade Breakdown Pass/No Credit, like every StuCo. To pass, get 70% out of: 20% Weekly Lectures (Thursdays 6:30-7:20 pm, Porter Hall 126A) 30% Weekly Homework (due following lecture, turned in via git, except the first few weeks, which will be via ) 20% Midterm (Date TBA) 30% Final (Date TBA)

More Course Details Prerequisite: Basic Unix Survival 3 Free Elective credits No official textbook, but I recommend Pro Git by Scott Chacon No office hours Piazza Slides and lecture notes posted online

Course Policy By StuCo Policy, students with more than 2 unexcused absences must be given a No Pass in the course. Thus, tell me if you’re going to miss class for a legitimate reason, and you might get an excused absence. More than 15 minutes late = unexcused absence Academic integrity applies. Don’t cheat. No late homework.

Waitlists

The Problem – “Version Control” I want to be able to go back to any prior version of any file in my project I want to be able to easily share a change to my project with someone else who has an older version

ing Tars Memory-intensive Can be slow Can be hard to track

Diff and Patch Idea: store only one version of each file, and store diffs between different file versions

Diff and Patch Apply and reverse-apply diffs to retrieve the needed version of the file Instead of sharing entire tars, developers share a diff file (“patch”) for each changed file Faster, uses less memory, but inconvenient because it’s dependent on order of applying patches when there are many patches

Centralized Version Control Systems A central, blessed repository determines the order of patches/commits If a commit directly precedes another commit in this order, then it is the parent commit of that other commit (so A is the parent of B) Any new commits must be compatible with the latest commit. If accepted, it becomes the latest commit’s child original file from my project Patch A Patch C Patch B … Patch Z Central, Blessed Repository Patch α Any new patches must be compatible with the latest version of the central repo, Patch Z

Distributed Version Control Systems No central repository Every repository has every commit Central Repository Developer A’s local files Developer D’s local files Developer C’s local files Developer B’s local files Commit Checkout Commit Checkout Dev A’s Repo Dev B’s Repo Dev C’s Repo Dev D’s Repo Commit Push/Fetch Centralized Version Control System Distributed Version Control System

Git Created in 2005 by Linus Torvalds to maintain the Linux kernel. Oh, and he also created that too. DVCS

Changes: Project-Tracking, No Diffs Other VCSs track changes to individual files Git tracks changes to the project, so commits can change more than one file Also, git doesn’t actually keep diffs around like other VCSs - it keeps a copy of every file from every commit, and uses magic and compression to keep the repo fast and small So think of the git history as a series of snapshots of what the repository looked like at each commit. You can retrieve files from any commit Commit 1: A_v1.txt B_v1.txt Commit 2: A_v2.txt B_v1.txt Commit 3: A_v3.txt B_v2.txt Commit 4: A_v3.txt Commit 5: A_v4.txt C_v1.txt

Git Clone Example use: git clone Creates a copy of the entire repository on your computer

Git Log Example use: git log Lists all the previous commits made up to the current commit

Demo

Homework Make a Github account Clone Angular Answer the homework questions, which will be posted this weekend