AIS Grid School 2015

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

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

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

Git for Version Control

Version control with Git.

Visualizing Git Workflows. A visual guide to 539 workflows

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

Git Introduction CS 400. February 11, 2018

Basics of Git GitHub

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

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

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

CS 390 Software Engineering Lecture 5 More Git

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

Laboratorio di Programmazione. Prof. Marco Bertini

b. Developing multiple versions of a software project in parallel

Lecture 6 Remotes. Sign in on the attendance sheet!

Lab 08. Command Line and Git

A Practical Introduction to Version Control Systems

Computer Science Design I Version Control with Git

Software Development I

Version Control: Gitting Started

Tizen/Artik IoT Practice Part 4 Open Source Development

Introduction to Git and Github

Git for Subversion users

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

Algorithm Engineering

Git tutorial. Katie Osterried C2SM. October 22, 2015

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

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

Fundamentals of Git 1

Version Control Systems (VCS)

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

CSE 391 Lecture 9. Version control with Git

CS 320 Introduction to Software Engineering Spring February 06, 2017

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

Version control system (VCS)

A BASIC UNDERSTANDING OF VERSION CONTROL

Software Revision Control for MASS. Git Basics, Best Practices

Basic git. Interactive.

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

Git for Newbies. ComMouse Dongyue Studio

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

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

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

CS314 Software Engineering Configuration Management

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

Use git rm to remove files from workspace

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

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

A Practical Introduction to git

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

Review Version Control Concepts

Distributed Version Control

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

Version Control with GIT

Managing Network Configurations with Git and GitLab

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

Git, the magical version control

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

Revision Control. An Introduction Using Git 1/15

Git - A brief overview

Version Control. Version Control

Using Git to Manage Source RTL

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

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

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

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

Object Oriented Programming. Week 1 Part 2 Git and egit

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

Version control CSE 403

Git. Christoph Matthies Software Engineering II WS 2018/19. Enterprise Platform and Integration Concepts group

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

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

Introduction to Git and Github Repositories

Beyond git add/commit/push

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

GIT FOR SYSTEM ADMINS JUSTIN ELLIOTT PENN STATE UNIVERSITY

Version Control Systems

Git. Presenter: Haotao (Eric) Lai Contact:

Version Control System GIT

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

Version control CSE 403

Lab Objective. Lab Assignment. Downloads and Installation

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

Technology Background Development environment, Skeleton and Libraries

How to be a git. Dominic Mitchell

Version Control. Version Control

Version Control with Git ME 461 Fall 2018

INET

Software Project (Lecture 4): Git & Github

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

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

Git, The Developers Perspec ve

Introduction to Version Control with Git

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

Using git to download and update BOUT++

Introduction to Version Control

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

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

Transcription:

Getting distributed without losing your HEAD AIS Grid School 2015 Дубна, Россия 3 e Oктября 2015 Benjamin Wolff (CERN / GS-AIS) Logo source: http://git-scm.com/downloads/logos

What is a Version Control System (VCS)?

What is a Version Control System (VCS)?

What is a Version Control System (VCS)? Bob Changes

What is a Version Control System (VCS)? Bob Changes Version History

What is a Version Control System (VCS)? Bob Changes Alice Version History

What is a Version Control System (VCS)? Bob Changes Backup Alice Version History

Agenda

1. What is Git? Agenda

Agenda 1. What is Git? 2. Basic Concepts

Agenda 1. What is Git? 2. Basic Concepts 3. Branching

Agenda 1. What is Git? 2. Basic Concepts 3. Branching 4. Merging

Agenda 1. What is Git? 2. Basic Concepts 3. Branching 4. Merging 5. Remotes

What is Git? Git is a free and open source, distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

What is Git? Git is a free and open source, distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

What is Git? Git is a free and open source, distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

What is Git? Git is a free and open source, distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

What is Git? Git is a free and open source, distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

What is Git? Git is a free and open source, distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

Other VCS Solutions

Other VCS Solutions SVN

Other VCS Solutions SVN

What does Git mean? Source: http://commons.wikimedia.org/wiki/file:linus_torvalds_talking.jpeg

What does Git mean? - Linus Torvalds Source: http://commons.wikimedia.org/wiki/file:linus_torvalds_talking.jpeg

What does Git mean? I'm an egotistical bastard, and I name all my projects after myself. First Linux, now git. - Linus Torvalds Source: http://commons.wikimedia.org/wiki/file:linus_torvalds_talking.jpeg

30% 25% Skills in IT Jobs Demand Source: itjobswatch.co.uk, Category: Development Applications Git 20% 15% 10% SVN 5% 0% 2013 2014 2015

30% 25% Skills in IT Jobs Demand Source: itjobswatch.co.uk, Category: Development Applications Git +11,78% 20% 15% 10% 5% SVN -2,20% 0% 2013 2014 2015

Basic Concepts

Central vs. Distributed SVN Source: http://git-scm.com/book/en/getting-started-about-version-control

Central vs. Distributed Git Source: http://git-scm.com/book/en/getting-started-about-version-control

Diffs vs. Snapshots SVN Source: http://git-scm.com/book/en/getting-started-git-basics

Diffs vs. Snapshots Git Source: http://git-scm.com/book/en/getting-started-git-basics

The Staging Area Source: http://git-scm.com/about/staging-area

The Staging Area Working Directory Source: http://git-scm.com/about/staging-area

The Staging Area Working Directory Repository Source: http://git-scm.com/about/staging-area

The Staging Area Working Directory Staging Area / Index Repository Source: http://git-scm.com/about/staging-area

The Staging Area Working Directory Staging Area / Index Repository Source: http://git-scm.com/about/staging-area

The Staging Area Working Directory Staging Area / Index Repository Source: http://git-scm.com/about/staging-area

The Staging Area git add Working Directory Staging Area / Index Repository Source: http://git-scm.com/about/staging-area

The Staging Area Working Directory git add Staging Area / Index git commit Repository Source: http://git-scm.com/about/staging-area

The Staging Area Working Directory git add Staging Area / Index git commit Repository Source: http://git-scm.com/about/staging-area

The Staging Area Working Directory Staging Area / Index Repository Source: http://git-scm.com/about/staging-area

The Staging Area Working Directory git checkout Staging Area / Index Repository Source: http://git-scm.com/about/staging-area

The Staging Area Working Directory Staging Area / Index Repository Source: http://git-scm.com/about/staging-area

The Staging Area Working Directory Staging Area / Index Repository git status Source: http://git-scm.com/about/staging-area

The Staging Area Working Directory Staging Area / Index Repository git status Source: http://git-scm.com/about/staging-area

Commits Source: http://git-scm.com/book/en/git-branching-what-a-branch-is

Commits Source: http://git-scm.com/book/en/git-branching-what-a-branch-is

Commits Source: http://git-scm.com/book/en/git-branching-what-a-branch-is

Commits Source: http://git-scm.com/book/en/git-branching-what-a-branch-is

Commits Source: http://git-scm.com/book/en/git-branching-what-a-branch-is

Basic Branching

Branching with Git

master Branching with Git

Branching with Git master Bob

Branching with Git master C3 C2 Bob C1

Branching with Git master C3 C2 Bob C1 Alice

Branching with Git master C3 C2 Bob C1 Alice

Branching with Git master F2 F1 C3 C2 Bob C1 Alice

master ef9ab

HEAD master ef9ab

HEAD master ef9ab git branch

HEAD master ef9ab git branch

HEAD master ef9ab git checkout

master ef9ab HEAD git checkout

master ef9ab HEAD git commit m Some changes

master ef9ab 78cfa HEAD git commit m Some changes

master ef9ab 78cfa HEAD git commit m Some changes

master ef9ab 78cfa HEAD git commit m Some more changes

master ef9ab 78cfa c83fd HEAD git commit m Some more changes

master ef9ab 78cfa c83fd HEAD git commit m Some more changes

master ef9ab 78cfa c83fd HEAD git checkout master

HEAD master ef9ab 78cfa c83fd git checkout master

HEAD master ef9ab 78cfa c83fd git checkout -b featurey

HEAD featurey master ef9ab 78cfa c83fd git checkout -b featurey

HEAD featurey master ef9ab 78cfa c83fd git commit m Some changes

HEAD featurey master db62a ef9ab 78cfa c83fd git commit m Some changes

HEAD featurey master db62a ef9ab 78cfa c83fd git commit m Some more changes

HEAD featurey master db62a 1ab34 ef9ab 78cfa c83fd git commit m Some more changes

HEAD featurey master db62a 1ab34 ef9ab 78cfa c83fd git commit m Some more changes

Basic Merging

Merging with Git master C3 C2 F2 Bob C1 F1 Alice

Merging with Git master C3 C2 F2 Bob C1 F1 Alice

Merging with Git master M1 C3 C2 F2 Bob C1 F1 Alice

HEAD master db62a 1ab34 ef9ab git checkout master

HEAD master db62a 1ab34 ef9ab git merge

HEAD master db62a 1ab34 ef9ab git merge

HEAD master db62a 1ab34 ef9ab git merge

HEAD master db62a 1ab34 ef9ab git merge

HEAD master db62a 1ab34 ef9ab Fast Forward git merge

HEAD master db62a 1ab34 ef9ab 78cfa c83fd git checkout master

HEAD master db62a 1ab34 ef9ab 78cfa c83fd git merge

HEAD master db62a 1ab34 ef9ab 78cfa c83fd git merge

HEAD master db62a 1ab34 ef9ab 78cfa c83fd git merge

HEAD master db62a 1ab34 a47b1 ef9ab 78cfa c83fd git merge

HEAD master db62a 1ab34 a47b1 ef9ab 78cfa c83fd git merge

HEAD 3-way Merge master ef9ab db62a 78cfa 1ab34 c83fd a47b1 git merge

HEAD 3-way Merge master ef9ab db62a 78cfa 1ab34 c83fd a47b1 git branch d

HEAD 3-way Merge master ef9ab db62a 78cfa 1ab34 c83fd a47b1 git branch d

Resolving Conflicts

Resolving Conflicts

Resolving Conflicts

Resolving Conflicts

Remotes

Remote Interaction Local Repository

Remote Interaction Local Repository git init

Remote Interaction Remote Repository Local Repository

Remote Interaction Remote Repository git clone Local Repository git clone https://mycompany.ru/myproject.git

Remote Interaction Remote Repository origin git clone Local Repository git clone https://mycompany.ru/myproject.git

Remote Interaction Remote Repository Local Repository

Remote Interaction Remote Repository git push Local Repository

Remote Interaction Remote Repository git push git fetch git pull Local Repository

origin ef9ab db62a local ef9ab db62a origin/

origin ef9ab db62a local ef9ab db62a 1ab34 c83fd origin/

origin ef9ab db62a local ef9ab db62a 1ab34 c83fd origin/ git push origin

origin ef9ab db62a 1ab34 c83fd local ef9ab db62a 1ab34 c83fd origin/ git push origin

origin ef9ab db62a 1ab34 c83fd local ef9ab db62a 1ab34 c83fd origin/ git push origin

origin ef9ab db62a local ef9ab db62a origin/

origin ef9ab db62a local ef9ab db62a 1ab34 c83fd origin/

origin ef9ab db62a a47b1 fe12a local ef9ab db62a 1ab34 c83fd origin/

origin ef9ab db62a a47b1 fe12a local ef9ab db62a 1ab34 c83fd origin/ git push origin

origin ef9ab db62a a47b1 fe12a local ef9ab db62a 1ab34 c83fd origin/ git push origin

origin ef9ab db62a a47b1 fe12a local ef9ab db62a 1ab34 c83fd origin/ git push origin

origin ef9ab db62a a47b1 fe12a local ef9ab db62a 1ab34 c83fd origin/ git fetch origin

origin ef9ab db62a a47b1 fe12a local ef9ab db62a 1ab34 c83fd a47b1 fe12a origin/ git fetch origin

origin ef9ab db62a a47b1 fe12a local ef9ab db62a 1ab34 c83fd a47b1 fe12a origin/ git merge origin/

origin ef9ab db62a a47b1 fe12a local ef9ab db62a 1ab34 c83fd 3abba8 a47b1 fe12a origin/ git merge origin/

origin ef9ab db62a a47b1 fe12a local ef9ab db62a 1ab34 c83fd 3abba8 a47b1 fe12a origin/ git push origin

origin ef9ab db62a a47b1 fe12a 3abba8 1ab34 c83fd local ef9ab db62a 1ab34 c83fd 3abba8 a47b1 fe12a origin/ git push origin

Central Repository Workflow Source: http://git-scm.com/about/distributed

Central Repository Workflow Source: http://git-scm.com/about/distributed

Central Repository Workflow Small/medium sized teams Source: http://git-scm.com/about/distributed

Integration Manager Workflow Source: http://git-scm.com/about/distributed

Integration Manager Workflow Source: http://git-scm.com/about/distributed

Integration Manager Workflow GitHub Source: http://git-scm.com/about/distributed

Dictator-Lieutenants Workflow Source: http://git-scm.com/about/distributed

Dictator-Lieutenants Workflow Source: http://git-scm.com/about/distributed

Dictator-Lieutenants Workflow Very large projects, e.g. Linux Kernel Source: http://git-scm.com/about/distributed

Personal Recommendations

Personal Recommendations Forget what you know about version control

Personal Recommendations Forget what you know about version control Try to use the command line at the beginning

Personal Recommendations Forget what you know about version control Try to use the command line at the beginning Read the Git command output carefully

Personal Recommendations Forget what you know about version control Try to use the command line at the beginning Read the Git command output carefully Best way to learn: set up a repo and play with it

Personal Recommendations Forget what you know about version control Try to use the command line at the beginning Read the Git command output carefully Best way to learn: set up a repo and play with it Hang in there, it s worth it!

So Git? Спасибо за ваше внимание!

Вопросы?

Resources http://git-scm.com/ (Excellent docs, tutorials, and resources) http://git-scm.com/book/ (Pro Git, a free Git book) http://gitref.org/ (Quick reference for Git commands) https://www.atlassian.com/en/git/ (Nice visual tutorials & workflows) http://try.github.io/ (Small live tutorial) http://www.youtube.com/ Search for Git