Git: Part 1 Overview & Object Model These slides were largely cut-and-pasted from tutorial/, with some additions.

Slides:



Advertisements
Similar presentations
Introduction To GIT Rob Di Marco Philly Linux Users Group July 14, 2008.
Advertisements

1. What is Subversion? Why do we need CM? Basic concepts Repositories Options Setup Clients Options Setup Operation Troubleshooting Slide 2.
Git : Part3 Branch Management These slides were largely cut-and-pasted from tutorial/, with some additions.
Simple Git Steve Pieper. Topics Git considerations and Slicer Git as if it were svn Git the way it is meant to be.
Git Branching What is a branch?. Review: Distributed - Snapshots Files are stored by SHA-1 hash rather than filename Stored in git database in compressed.
Version Control, Revision Control Software Configuration Management.
Version Control with git. Version Control Version control is a system that records changes to a file or set of files over time so that you can recall.
1 CSE 390 “Lecture 11” Version control with Git slides created by Ruth Anderson, images from
Introduction to Git and Github Joshua imtraum.com.
Distributed Version Control. Image stolen from which is really good, go read it.  Old-school version control.
Git for Version Control These slides are heavily based on slides created by Ruth Anderson for CSE 390a. Thanks, Ruth! images taken from
Fundamentals of Git By Zachary Ling 29 th, Aug,
Version Control with Subversion. What is Version Control Good For? Maintaining project/file history - so you don’t have to worry about it Managing collaboration.
Introduction to Version Control with SVN & Git CSC/ECE 517, Fall 2012 Titus Barik & Ed Gehringer, with help from Gaurav.
علیرضا فراهانی استاد درس: جعفری نژاد مهر Version Control ▪Version control is a system that records changes to a file or set of files over time so.
Peter Ogden and Josh Levine.  Motivation  High level overview  Walk through the common operations  How not to break things (too badly)
Git – versioning and managing your software L. Grewe.
1 Introductory Notes on the Git Source Control Management Ric Holt, 8 Oct 2009.
ITEC 370 Lecture 16 Implementation. Review Questions? Design document on F, feedback tomorrow Midterm on F Implementation –Management (MMM) –Team roles.
Version Control Systems academy.zariba.com 1. Lecture Content 1.What is Software Configuration Management? 2.Version Control Systems (VCS) 3.Basic Git.
…using Git/Tortoise Git
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.
SWEN 302: AGILE METHODS Roma Klapaukh & Alex Potanin.
Team 708 – Hardwired Fusion Created by Nam Tran 2014.
CSE 219 Computer Science III CVS
Git : Part 2 Checkout, Add, Commit These slides were largely cut-and-pasted from tutorial/, with some additions.
Introduction to Version Control with Git CSC/ECE 517, Fall 2014 A joint project of the CSC/ECE 517 staff, including Titus Barik, Gaurav Tungatkar, Govind.
Git Basics. Git stores data as snapshots of the project over time When commit Save all the files If files have not changed, point to the previous identical.
1 Applied CyberInfrastructure Concepts ISTA 420/520 Fall
By: Anuj Sharma. Topics covered:  GIT Introduction  GIT Benefits over different tools  GIT workflow  GIT server creation  How to use GIT for first.
QUICK START OF GITHUB Lin Shuo-Ren 2013/3/6 1. Why We Should Control The Version Although it rains, throw not away your watering pot. All changes should.
1 © 2015 Albion College | BUGMI 2015 Git’s Architecture And How It Relates to Banner Eddie Bachle Albion College September 25, 2015.
Version Control System Lisa Palathingal 03/04/2015.
GIT.
Part 4: FCM and the UM University of Reading, December 2015.
Falcons Git Usage Andre Pool Version 2.0 October 2015 / Veldhoven.
Lecture 2 Making Simple Commits Sign in on the attendance sheet! credit:
Introduction to Git Yonglei Tao GVSU. Version Control Systems  Also known as Source Code Management systems  Increase your productivity by allowing.
Introduction to Git - Chirag Dani. Objectives Basics of Git Understanding different “Mindset of Git” Demo - Git with Visual Studio.
Technical Presentation by: David Spano. About Git (VCS) Simple Git Commands Branching Github Git GUI Summary.
Git How to 1. Why Git To resolve problems in lab exams (accidental deletions) Use existing Libraries with ease (Statistics and Computer) Prepare undergraduates.
1 Ivan Marsic Rutgers University LECTURE 2: Software Configuration Management.
1 Subversion Kate Hedstrom April Version Control Software System for managing source files –For groups of people working on the same code –When.
Git In The Land of Version Control Systems A tutorial on getting git.
Dr. Tanusri Bhattacharya
Version Control Systems
CS5220 Advanced Topics in Web Programming Version Control with Git
M.Sc. Juan Carlos Olivares Rojas
Source Control Systems
L – Modeling and Simulating Social Systems with MATLAB
Version Control Systems
LECTURE 2: Software Configuration Management
Git Practice walkthrough.
SSE2034: System Software Experiment 3 Spring 2016
Version Control System using Git
Version Control with Git and GitHub
Sign in on the attendance sheet!
Version Control Systems
An introduction to version control systems with Git
Distributed Version Control with git
Akshay Narayan git up to speed with RCS Akshay Narayan
An introduction to version control systems with Git
LECTURE 3: Software Configuration Management
An introduction to version control systems with Git
Version control with Git Part II
Version control with Git
Git is a Source Control Management Tool/Version Control System.
Git GitHub.
Introduction To GitHub
Advanced Git for Beginners
Presentation transcript:

Git: Part 1 Overview & Object Model These slides were largely cut-and-pasted from tutorial/, with some additions from other sources. I have deleted a lot from the cited tutorial, and recommend that you listen to the entire tutorial on line, if you can. tutorial/

Who needs Git?

Topics What is Git? SCM concepts used in Git Git object model Representation of Git objects as files References

Git A collection of tools developed by Linux kernel group for SCM – Now used by several other groups, and apparently growing in popularity Actually implements a replicated versioned file system Can be used to implement a variety of software configuration management models and workflows

Git Flavor A collection of many tools Evolved from scripts Suited to a C programmer’s mentality Everything is exposed and accessible Very flexible – You can do anything the model permits – Including shooting yourself in the foot Need to understand the underlying model

Git has a lot of commands Learn a core subset of them And one of the GUI tools (e.g., gitk) Then learn the rest as you need them

Groups of Git commands Setup and branch management – init, checkout, branch Modify – add, delete, rename, commit Get information – status, diff, log Create reference points – tag, branch

Source code contains – Directories – Files is the substance of a software configuration

Repository Contains – files – commits records history of changes to configuration

Repository Contains – files – commits – ancestry relationships

Ancestry relationships form a directed acyclic graph (DAG)

Ancestry graph features Tags – identify versions of interest – including “releases”

Ancestry graph features HEAD – is current checkout – usually points to a branch

Head may point to any commit In this case it is said to be detached.

Git components Index – “staging area” – what is to be committed

History A database, stored in directory “.git”.

Staging area Also stored in directory “.git”.

Files you edit Stored in the directory containing directory “.git”.

Staging add

Committing commit

Checking out checkout

Local Operations add (stage) files Working directory Repository (.git directory) Index (staging area) checkout the project commit

Object types Blobs Trees Commits Tags

Git Object Model example.png

As UML class diagram

Repository

.git/objects |-- 23 | ‘-- d4bd826aba9e29aaace9411cc175b784edc399 |-- 76 | ‘-- 49f82d40a98b1ba e47aab2a99a11d3 |-- c4 | ‘-- aaefaa8a48ad4ad379dc1002b78f1a3e4ceabc |-- e7 | ‘-- 4be61128eef713459ca4e32398d689fe80864e |-- info | ‘-- packs ‘-- pack |-- pack-b7b026b1a0b0f193db9dea0b0d7367d25d3a68cc.idx ‘-- pack-b7b026b1a0b0f193db9dea0b0d7367d25d3a68cc.pack loose

Some other repository files.git/config.git/description – used by gitweb.git/info/exclude – files to ignore...

Repository object naming convention “content addressable” (hashed)

Data values determine hash

Hash value is filename

File contains data

Blobs

Trees

Trees

Trees

Commits

Commits

Commits

Commits

Objects are immutable

References git/ git/