Managing Network Configurations with Git and GitLab

Similar documents
DEVNET Introduction to Git. Ashley Roach Principal Engineer Evangelist

A BASIC UNDERSTANDING OF VERSION CONTROL

GIT. A free and open source distributed version control system. User Guide. January, Department of Computer Science and Engineering

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

GETTING STARTED WITH. Michael Lessard Senior Solutions Architect June 2017

Git. Presenter: Haotao (Eric) Lai Contact:

Git tutorial. Katie Osterried C2SM. October 22, 2015

Revision Control and GIT

Git & Github Fundamental by Rajesh Kumar.

MOOSE-Based Application Development on GitLab

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

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

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

Version control with Git.

Git Introduction CS 400. February 11, 2018

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

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

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

AIS Grid School 2015

CS 390 Software Engineering Lecture 5 More Git

GIT FOR SYSTEM ADMINS JUSTIN ELLIOTT PENN STATE UNIVERSITY

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

Git for Version Control

Version Control System GIT

Introduction to Git and Github

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

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

Visualizing Git Workflows. A visual guide to 539 workflows


CS314 Software Engineering Configuration Management

Computer Science Design I Version Control with Git

FEEG Applied Programming 3 - Version Control and Git II

Code Repository. P Blanchfield

Git for Subversion users

Git for Newbies. ComMouse Dongyue Studio

Distributed Version Control

Object Oriented Programming. Week 1 Part 2 Git and egit

Introduction to Version Control with Git

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

git commit --amend git rebase <base> git reflog git checkout -b Create and check out a new branch named <branch>. Drop the -b

GIT Princípy tvorby softvéru, FMFI UK Jana Kostičová,

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

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

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

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

Version Control: Gitting Started

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

GIT VERSION CONTROL TUTORIAL. William Wu 2014 October 7

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

Software Development I

Use git rm to remove files from workspace

CSE 391 Lecture 9. Version control with Git

Outline. Introduction to Version Control Systems Origins of Git Git terminology & concepts Basic Git commands Branches in Git Git over the network

Lab Objective. Lab Assignment. Downloads and Installation

Version Control. Version Control

Version Control with GIT

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

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

Submitting your Work using GIT

Outline. Introduction to Version Control Systems Origins of Git Git terminology & concepts Basic Git commands Branches in Git Git over the network

Outline. Version Control System (VCS) basics Git terminology & concepts Basic Git commands Branches in Git Git over the network (time permitting)

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

Tips on how to set up a GitHub account:

L Modeling and Simulating Social Systems with MATLAB

Git Guide. Meher Krishna Patel. Created on : Octorber, 2017 Last updated : October, More documents are freely available at PythonDSP

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

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

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

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

CS 520: VCS and Git. Intermediate Topics Ben Kushigian

Version Control. Version Control

GIT TO DA REPO! VERSION CONTROL, GITLAB, AND ISU

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

Revision Control. An Introduction Using Git 1/15

Lecture 6 Remotes. Sign in on the attendance sheet!

Version Control Systems (VCS)

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

Human-Computer Interaction Design

Version Control System - Git. zswu

Esri on GitHub: How to Participate in Open Source Projects

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

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

Git, the magical version control

Version control system (VCS)

Improving Your Life With Git

Continuous translation with Weblate. Michal Čihař

Software Project (Lecture 4): Git & Github

Github/Git Primer. Tyler Hague

CS 320 Introduction to Software Engineering Spring February 06, 2017

How to be a 1337 h4ck3r: Git + Linux

Version Control. Collaborating with git. Tim Frasier

Version Control with Git

Lab 08. Command Line and Git

Git(Lab) Tutorial and Hands-On

Fundamentals of Git 1

Lab Exercise Git: A distributed version control system

Git Basi, workflow e concetti avanzati (pt2)

Using GitHub and SourceTree to work with DITA TC repositories

CS 390 Software Engineering Lecture 4 - Git

CSC 2700: Scientific Computing

Transcription:

Managing Network Configurations with Git and GitLab Matthew DeNapoli Developer Advocate, DevNet Twitter: @thedenap Season 1, Workshop 3 https://developer.cisco.com/netdevops/live

What are we going to talk about? Need for Version Control What do we git? Git, by the book Demo Git flow using Gitlab

NetDevOps Configuration Pipeline Treating the Network as Code Network Configuration stored in Source Control Changes are proposed in code branches CICD Build Servers deploy and test proposed configurations Successful configurations ready for deployment to Production

The Need for Version Control How do I make incremental changes and share my work with others? How do I go back to the version of this file from (yesterday, last week, last year,...)? What changed between version X and version Y of a file? People have been making changes to the same file (or set of files)... How do I reconcile and merge all these changes?

Git vs. GitLab (or GitHub or BitBucket, etc.) Git

What do I git from Github/Gitlab/others? Project Management Issues Tasks Comments/Notes CI/CD integrations Code Review Propose Changes Pull/Merge request Request Review/Manage Feedback See Diff Branch management

Basic Git Terminology Repository (Repo) - A vault for storing version controlled files Working Directory The visible directory and its contents Versioned Files Files you have asked Git to track Un-Versioned Files Files in your working directory not tracked by Git Commit Snapshot in time (of your version controlled files) Branches A safe place for you to work

Useful Git Commands Setup Tell git who you are one-time setup Clone Clone ( download ) a git repository git clone url Fetch Fetch branch(es)/tag(s) git fetch repository Status Check the Status of your local repository git status Checkout A Branch Create and Checkout a local Branch Creates a safe place for your changes git config --global user.name your name git config --global user.email your@email.com git checkout b new-branch-name Add Add a file to your next commit. git add filename Commit Commit your changes. git commit m Your commit message. Push Push changes to remote (central server) git push Merge Combine changes from branch(es) git merge

NetDevOps Sample-Code Workflow git fetch/clone Sample Code (master) git checkout Sample Code (mycode) git push Step Action Git Command 1. Clone the Remote Repository git clone url 2. Create and Checkout a Local Branch git checkout b new-branch-name git commit def f(x):...... git add Edit def f(x):...... 3. Incrementally Commit Changes git add filename git commit -m Commit message

Let s Do It!

Summing up

What did we talk about? Where in the NetDevOps Toolbag are we? Where in the CI/CD Pipeline are we? Need for Version Control Git, by the book Demo Git flow using Gitlab

Webinar Resource List Docs and Links https://developer.cisco.com/netdevops https://git-scm.com https://gitlab.com Learning Labs Introduction to Git - http://cs.co/intro-to-git DevNet Sandboxes Multi-IOS Sandbox with CICD Demo http://cs.co/sbx-multi Code Samples http://cs.co/code-sbx-multi

NetDevOps Live! Code Exchange Challenge developer.cisco.com/codeexchange Open Issues, and Send PRs to sample repository to add some piece of configuration, or fix some error. Example: Find a repository you re interested in, open a feature issue, work on the feature and submit a PR

Looking for more about NetDevOps? NetDevOps on DevNet developer.cisco.com/netdevops NetDevOps Live! developer.cisco.com/netdevops/live NetDevOps Blogs blogs.cisco.com/tag/netdevops Network Programmability Basics Video Course developer.cisco.com/video/net-prog-basics/

Got more questions? Stay in touch! Matt DeNapoli mdenapol@cisco.com @thedenap http://github.com/denapom11 developer.cisco.com @CiscoDevNet facebook.com/ciscodevnet/ http://github.com/ciscodevnet

https://developer.cisco.com/netdevops/live @netdevopslive