F17 Modern Version Control with Git. Aaron Perley https://www.andrew.cmu.edu/course/98-174/

Similar documents
S18 Modern Version Control with Git

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

Software Revision Control for MASS. Git Basics, Best Practices

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

Version Control with Git ME 461 Fall 2018

A BASIC UNDERSTANDING OF VERSION CONTROL

GETTING STARTED WITH. Michael Lessard Senior Solutions Architect June 2017

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

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

L Modeling and Simulating Social Systems with MATLAB

Lecture 2 Making Simple Commits

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

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

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

Version control system (VCS)

Software Project (Lecture 4): Git & Github

Laboratorio di Programmazione. Prof. Marco Bertini

Version control with Git.

How to be a git. Dominic Mitchell

Computer Science Design I Version Control with Git

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

Introduction to Git and Github

Git for Version Control

Algorithm Engineering

AIS Grid School 2015

Version Control Systems (Part 1)

Using git to download and update BOUT++

CSE 331 Software Design & Implementation

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

INTRODUCTION TO DATA SCIENCE

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

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

Version Control Systems

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

Version Control Systems: Overview

Introduction to Git and Github Repositories

GIT VERSION CONTROL TUTORIAL. William Wu 2014 October 7

Revision control Advanced git

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

Using GitHub to Share with SparkFun a

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

CS 320 Introduction to Software Engineering Spring February 06, 2017

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

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

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

INET

Version Control Systems (VCS)

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

Windows. Everywhere else

Version Control. Version Control

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

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

TDDC88 Lab 4 Software Configuration Management

Git: Distributed Version Control

Contact No office hours, but is checked multiple times daily. - Specific questions/issues, particularly conceptual

CSE 391 Lecture 9. Version control with Git

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

Version control CSE 403

Network Security

Version Control. Version Control

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

Version Control with GIT

CSCE 441 Computer Graphics Fall 2018

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

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

Lab 08. Command Line and Git

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

Lecture 1. Intro to Module and Tool-Chain

Git: Distributed Version Control

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

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

15-411/ Compiler Design

Software Development I

How to be a 1337 h4ck3r: Git + Linux

Technology Background Development environment, Skeleton and Libraries

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

A Practical Introduction to Version Control Systems

HOUSTON COMMUNITY COLLEGE BUSINESS TECHNOLOGY NORTHEAST COLLEGE-NORTHLINE LOCATION COURSE SYLLABUS FALL 2011 COMPUTER APPLICATION I POFI 1301

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

CISC 3130 Data Structures Spring 2018

Advanced Programming CMPS 109

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

Version Control with Git

Git. Ľubomír Prda. IT4Innovations.

Lab Exercise Git: A distributed version control system

Getting started with GitHub

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

Lecture 6 Remotes. Sign in on the attendance sheet!

AMath 483/583 Lecture 2

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

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

AMath 483/583 Lecture 2. Notes: Notes: Homework #1. Class Virtual Machine. Notes: Outline:

Version Control with GIT: an introduction

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

Human Version Control

Improving Your Life With Git

Week 5. CS 400 Programming III

Introduction to Version Control with Git

IS 331-Fall 2017 Database Design, Management and Applications

Transcription:

98-174 F17 Modern Version Control with Git Aaron Perley (aperley@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/ Last semester s schedule: https://www.andrew.cmu.edu/course/98-174/s17/

Grade Breakdown Pass/No Credit, like every StuCo. To pass, get 70% out of: 20% Weekly Lecture Attendance (Tuesdays 6:30PM 7:20PM, Baker Hall 140F) 30% Submitted work (often in-class) 20% Midterm (Date TBA) 30% Final (Date TBA)

More Course Details 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 (aperley@andew.cmu.edu) if you have questions 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, email us 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. Don t be late. Academic integrity applies. Don t cheat. No late homework.

Waitlist If you are on the waitlist, please keep coming to class. There is a 99.9% 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 Tuesdays after class, due next Tuesday at beginning of class Posted on the course website Email me (aperley@andrew.cmu.edu) if you have questions, I ll be happy to help you out!