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

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

Lab 08. Command Line and Git

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

Introduction to Git and Github

Github/Git Primer. Tyler Hague

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

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

Git for Subversion users

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

Windows. Everywhere else

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

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

Intro to Github. Jessica Young

Tips on how to set up a GitHub account:

Version Control with Git ME 461 Fall 2018

Tizen/Artik IoT Practice Part 4 Open Source Development

Software Development I

Git. Presenter: Haotao (Eric) Lai Contact:

Beyond git add/commit/push

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

Using GitHub to Share with SparkFun a

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

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

Git tutorial. Katie Osterried C2SM. October 22, 2015

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

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

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

Creating a Patch. Created by Carl Heymann on 2010 Sep 14 1

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

CSE 391 Lecture 9. Version control with Git

Revision Control and GIT

b. Developing multiple versions of a software project in parallel

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

Introduction to Git and Github Repositories

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

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

Review Version Control Concepts

Distributed Version Control

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

Git Resolve Conflict Using Mine Command Line

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

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

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

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

Git, the magical version control

CS 520: VCS and Git. Intermediate Topics Ben Kushigian

git-flow Documentation

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

Git Workbook. Self-Study Guide to Git. Lorna Mitchell. This book is for sale at

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

Introduction to Version Control with Git

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

Revision Control. An Introduction Using Git 1/15

How to git with proper etiquette

Git for Version Control

Version control system (VCS)

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

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

USING GIT FOR AUTOMATION AND COLLABORATION JUSTIN ELLIOTT - MATT HANSEN PENN STATE UNIVERSITY

Version Control. Collaborating with git. Tim Frasier

A quick (and maybe practical) guide to Git and version control. By Jay Johnson

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

Version Control System - Git. zswu

Intro to Linux & Command Line

GUIDE TO MAKE A REAL CONTRIBUTION TO AN OPEN SOURCE PROJECT 1. 1

GETTING STARTED WITH. Michael Lessard Senior Solutions Architect June 2017

Git. all meaningful operations can be expressed in terms of the rebase command. -Linus Torvalds, 2015

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:

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

SECTION 2: HW3 Setup.

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

Belle II - Git migration


Django MFA Documentation

Using GitHub and SourceTree to work with DITA TC repositories

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

CSE 390 Lecture 9. Version control and Subversion (svn)

Chapter 5. Version Control: Git

AIS Grid School 2015

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

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

SECTION 1: CODE REASONING + VERSION CONTROL

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

SECTION 1: CODE REASONING + VERSION CONTROL

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

Version control with Git.

Why To Go With Licensed Version Control Tool When Open Source Tool Is There

Lab Objective. Lab Assignment. Downloads and Installation

Recap: Developer's Environment

CSE 332: Data Structures and Parallelism Winter 2019 Setting Up Your CSE 332 Environment

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

Online Remote Repositories

CSCI 1010 Computer Science Orientation Introduction to version control

IC Documentation. Release 0.1. IC team

Git tips. Some tips to use Git.

Git GitHub & secrets

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

SECTION 1: CODE REASONING + VERSION CONTROL + ECLIPSE

CSC 2700: Scientific Computing

Transcription:

What the Git?

The Old World Have you ever had to collaborate on a project by Shuttling a USB drive back and forth Using Dropbox E-mailing your document around Have you ever accidentally deleted someone else's changes because you both saved the same file?

Git Saves your work Helps you back it up online Lets you go back to any saved version of any file Data diary, but for code Helps you collaborate with other people even if you're editing the same files in a project

https://github.com/tabulapdf/tabula/network

https://github.com/tabulapdf/tabula/commits/master

https://github.com/tabulapdf/tabula/commit/145e2247f76a29dd265ed873230f12e75cdc0a17

Jargon Repository (n) Commit (n, v) Branch (n) Clone (v) / Fork (n, v) / Remote (n) Push (v) / Pull (v) Check out (v) Merge (v)

Repository repo for short noun: A project in git. Contains a folder and everything inside it*. And the entire history of changes to that folder. (* you can make some exceptions, for things like super large data files)

Commit noun: a particular version or snapshot of your repository. look at my most recent commit verb: to create

Branch noun: a version of a repository that can be worked on in parallel to other branches ( live ) \ - - - - - ( master ) \ - - ( mike-experiment )

Clone verb: to download a copy of a repository to your computer Fork verb: to create your own copy of a repository This is like making a copy of a shared document in Google Docs so you can make your own edits

Remote noun: a copy of a repository that's somewhere other than your computer. A remote can be: Your copy in GitHub (or another web service) Someone else's fork of the same repository on GitHub (or etc.) Other crazy things Folders on your computer (you can stash your repository in Dropbox, etc)

Push verb: to upload your commits to the website Pull verb: to get new commits from the website

Check out verb: to switch to a different branch

Merge It's what you do when you're making commits at the same time as somebody else and you're pulling their commits so you have a consistent history. - - - - ( master ) \ - - - - - ( mike-experiment )

Merge It's what you do when you're making commits at the same time as somebody else and you're pulling their commits so you have a consistent history. - - - - ( master ) \ - - - - - ( mike-experiment )

Merge It's what you do when you're making commits at the same time as somebody else and you're pulling their commits so you have a consistent history. - - - - - - - - - \ \ - - - - - - - ( mike-experiment )

Merge Work on the project at the same time as someone else? OK! Add new files that weren't there before? OK! Rename or delete files? Usually OK! Edit the same file as someone else? Usually OK!

Merge Work on the project at the same time as someone else? OK! Add new files that weren't there before? OK! Rename or delete files? Usually OK! Edit the same file as someone else? Usually OK! When merging commits, the computer knows how to combine the changes as long as they're not ambiguous like two people editing the same line.

Merge Conflict This happens if: You edited the <h1> tag at the top of an HTML file and committed it But someone else already made a different change to the same tag of the same file and committed it and pushed it. And you're trying to merge what they've done Don't worry! Git will warn you, and show you both versions before it continues merging.

Workflow Do some stuff Commit Do more stuff Commit

Workflow Do some stuff Commit Do more stuff Commit Wait: all your work is only stored on your computer!

Workflow The workflow is like packing things into boxes when moving. When you commit (packed & labeled a box), the contents haven't gone anywhere just yet. But you can always unpack a specific box if you need something! Push sends the boxes elsewhere. Pull receives boxes from elsewhere.

Workflow Do some stuff Commit Pull / Merge (if necessary) / Push Do more stuff Commit Pull / Merge (if necessary) / Push

Tips: Always Be Committing As long as you make a commit, you will always be able to recover that state of the repository even if files are later merged or deleted.

Tips: Branches & forks help keep things in order. We usually work directly on the main branch when doing little after-the-fact updates, but inside individual forks or branches when we're building things out and actively making lots of commits Branches: master branch, mike branch, lena branch, sisi branch Forks: "propublica/master", "mtigas/master", "ashaw/master"