SlideShare a Scribd company logo
Git: Be Social 
Geronimo Orozco 
gorozco @ gmail.com 
Sept 2011
● General introduction: 
– Who I am 
– Brief intro to VCS 
● What is VCS 
Scope 
● Why do we need it 
● Types of VCS 
– Git 
● History 
● What is Git 
● General features 
● Traditional Way 
● The Git way 
● The Three states 
● The basic workflow 
● Tutorial 
● Talk highly based on Pro Git (Seriously 
this is just a extract and you should read the 
book)
Who am I ? 
(or why you should listen to me) 
● Open Source Advocate User & Developer 
– 4 years in QA 
– 6 years as SysAdmin 
– 6 years as Software Developer 
– YaCOMAS (2004 released as GPL)
Who am I ? 
(or why you should listen to me) 
● Open Source Advocate User & Developer 
– 4 years in QA 
– 6 years as SysAdmin 
– 6 years as Software Developer 
– YaCOMAS (2004 released as GPL) 
● I messed up too many times.
Version Control Systems 
● Simple: 
– VCS lets you track your files over time. 
● 
● 
● 
● 
2012/10/01 
Poem: 
2012/10/02 
Poem: 
Roses are red, 
violets are blue
Version Control Systems 
● Simple: 
– VCS lets you track your files over time. 
● 
● 
● 
2012/10/01 
Poem: 
2012/10/02 
● Why do you care? 
Poem: 
Roses are red, 
violets are blue
Version Control Systems 
● Simple: 
– VCS lets you track your files over time. 
● 
● 
● 
2012/10/01 
Poem: 
2012/10/02 
Roses are red, 
violets are blue 
● Why do you care? 
2012/10/03 
– So when you mess up you can easily get back 
to a previous working version. 
Roses are red, 
violets are blue 
i tought i was ugly 
but then i met you
Version Control Systems 
● Why do we need it: 
– Backup and Restore 
– Synchronization. 
– Short-term undo 
– Long-term undo 
– Track Changes 
– Track Ownership 
– Sandboxing 
– Branching and merging
Local Version Control Systems
Centralized Version Control Systems
Distributed Version Control Systems
History of Git 
● Originally Developed by Linus Torvalds 
● Currently Maintained by Junio Hamano 
● Born to Manage Linux Kernel Development 
● Open Source, free (GNU GPL V2)
History of Git 
● Originally Developed by Linus Torvalds 
● Currently Maintained by Junio Hamano 
● Born to Manage Linux Kernel Development 
● Open Source, free (GNU GPL V2) 
English slang for a stupid or unpleasant 
person. 
Torvalds said: "I'm an egotistical bastard, 
and I name all my projects after myself. 
First 'Linux', now 'git'."
What is Git? 
● Distributed Source Control Management tool 
● Born to Manage Linux Kernel Development 
● Open Source, free (GNU GPL V2)
General features 
● Speed 
● Simple design 
● Strong support for non-linear development 
(thousands of parallel branches) 
● Fully distributed 
● Able to handle large projects like the Linux 
kernel efficiently (speed and data size)
a list of file-based changes 
(traditional way)
A mini file system (The Git way)
The Git way 
● Nearly Every Operation Is Local 
– Most operations in Git only need local files and 
resources to operate 
● Git Has Integrity 
– Everything in Git is check-summed before it is 
stored and is then referred to by that 
checksum. 
● Git Generally Only Adds Data
The Three States
The basic workflow 
● You modify files in your working directory. 
● You stage the files, adding snapshots of them 
to your staging area. 
● You do a commit, which takes the files as they 
are in the staging area and stores that 
snapshot permanently to your Git directory.
Tutorial
Installing git 
● Ubuntu 
– $ apt-get install git-core 
● Fedora 
– $ yum install git-core 
● Windows 
– http://code.google.com/p/msysgit
Git setup 
● General 
– $ git config --global user.name "John Doe" 
– $ git config --global user.email johndoe@example.com 
● Your Editor 
– $ git config --global core.editor vim 
● Your Diff Tool: 
– $ git config --global merge.tool vimdiff 
● Check your settings: 
– $ git config --list
Getting help 
● $ git help <verb> 
● $ git <verb> --help 
● $ man git-<verb> 
● Ex: 
– $ git help config
Git Basics - Recording Changes to the 
Repository
Git Basics - Getting a Git Repository 
Initializing a Repository in an Existing Directory 
$ git init 
– This creates a new subdirectory named .git 
(The git directory)
Git Basics - Getting a Git Repository 
Cloning an Existing Repository 
$ git clone https://github.com/patux/YaCOMAS 
$ git clone repo1 repo2
Git Basics - Recording Changes to the 
Repository 
(Checking the Status of Your Files) 
$ git status
Git Basics - Getting a Git Repository 
Tracking New Files 
$ git add README
Git Basics - Recording Changes to the 
Repository 
Viewing Your Staged and Unstaged Changes 
$ git diff
Git Basics - Recording Changes to the 
Repository 
Committing Your Changes 
$ git add 
$ git commit
Git Basics - Recording Changes to the 
Repository 
Removing files 
$ rm file 
$ git status
Git Basics - Recording Changes to the 
Repository 
Moving files 
$ git mv file_from file_to 
$ git status
Git Basics – History 
Viewing the Commit History 
$ git log 
●GUI: 
● gitk 
● gitg
Git Basics – Undoing things 
Changing your last commit 
$ git commit -m 'initial commit' 
$ git add forgotten_file 
$ git commit --amend
Git Basics – Working with remotes 
Showing your remotes 
$ git clone https://github.com/patux/YaCOMAS 
$ git remote 
$ git remote -v
Git Basics – Working with remotes 
Adding Remote Repositories 
$ git remote add pb git://github.com/foo/YaCOMAS 
$ git remote -v
Git Basics – Working with remotes 
Fetching and Pulling from Your Remotes 
$ git fetch [remote-name] 
$ git pull [remote-name]
Git Basics – Working with remotes 
Removing and Renaming Remotes 
$ git remote rename pb paul 
$ git remote rm paul
Git Basics – Working with remotes 
Pushing to Your Remotes 
$ git push [remote-name]
Git Basics – Working with remotes 
Pushing to Your Remotes
Git Basics – Tagging 
Listing yout Tags 
$ git tag 
$ git tag -l 'v1.4.2.*' 
$ git tag -a v1.4 -m 'my version 1.4' 
$ git show v1.4 
$ git push origin v1.5 
$ git push origin --tags
Git Basics – Branches 
What a Branch Is
Git Basics – Branches 
What a Branch Is 
$ git branch testing
Git Basics – Branches 
What a Branch Is 
$ git checkout testing
Git Basics – Branches 
What a Branch Is 
$ vim test.rb 
$ git commit -a -m 'made a change'
Git Basics – Branches 
What a Branch Is 
$ git checkout master
Git Basics – Branches 
What a Branch Is 
$ vim test.rb 
$ git commit -a -m 'made other changes'
References 
● http://git-scm.com/book/ 
● http://www.slideshare.net/anildigital/git-introduction 
● http://nvie.com/posts/a-successful-git-branching-model/
Questions ? 
geronimo.orozco@intel.com 
Twitter: @patux 
Github: https://github.com/patux

More Related Content

What's hot

find & improve some bottleneck in Debian project (DebConf14 LT)
find & improve some bottleneck in Debian project (DebConf14 LT)find & improve some bottleneck in Debian project (DebConf14 LT)
find & improve some bottleneck in Debian project (DebConf14 LT)Hideki Yamane
 
Better delivery with DevOps Driven Development
Better delivery with DevOps Driven DevelopmentBetter delivery with DevOps Driven Development
Better delivery with DevOps Driven DevelopmentJirayut Nimsaeng
 
Puppet at GitHub
Puppet at GitHubPuppet at GitHub
Puppet at GitHubPuppet
 
Let the contribution begin (EST futures)
Let the contribution begin  (EST futures)Let the contribution begin  (EST futures)
Let the contribution begin (EST futures)SeongJae Park
 
Package Drone @ Eclipse Demo Camp Munich 2015
Package Drone @ Eclipse Demo Camp Munich 2015Package Drone @ Eclipse Demo Camp Munich 2015
Package Drone @ Eclipse Demo Camp Munich 2015dentrassi1
 
MongoDB World 2019 Builder's Fest - Ready, Git set ... Go!
MongoDB World 2019 Builder's Fest - Ready, Git set ... Go!MongoDB World 2019 Builder's Fest - Ready, Git set ... Go!
MongoDB World 2019 Builder's Fest - Ready, Git set ... Go!Stennie Steneker
 
Introduction to Google Web Toolkit - part 1
Introduction to Google Web Toolkit - part 1Introduction to Google Web Toolkit - part 1
Introduction to Google Web Toolkit - part 1Muhammad Ghazali
 
Lets isolate a process with no container like docker
Lets isolate a process with no container like dockerLets isolate a process with no container like docker
Lets isolate a process with no container like dockerGiulio De Donato
 
about Debian "squeeze" @201002 OSC Tokyospring
about Debian "squeeze" @201002 OSC Tokyospringabout Debian "squeeze" @201002 OSC Tokyospring
about Debian "squeeze" @201002 OSC TokyospringHideki Yamane
 
Biscuit: an operating system written in go
Biscuit:  an operating system written in goBiscuit:  an operating system written in go
Biscuit: an operating system written in goSeongJae Park
 
Does Cowgirl Dream of Red Swirl?
Does Cowgirl Dream of Red Swirl?Does Cowgirl Dream of Red Swirl?
Does Cowgirl Dream of Red Swirl?Hideki Yamane
 
Ripping web accessible .git files
Ripping web accessible .git filesRipping web accessible .git files
Ripping web accessible .git filesVlatko Kosturjak
 
Intro to Git for Drupal 7
Intro to Git for Drupal 7Intro to Git for Drupal 7
Intro to Git for Drupal 7Chris Caple
 
Buildout: creating and deploying repeatable applications in python
Buildout: creating and deploying repeatable applications in pythonBuildout: creating and deploying repeatable applications in python
Buildout: creating and deploying repeatable applications in pythonCodeSyntax
 
Creare Docker da zero con GoLang - Giulio De Donato
Creare Docker da zero con GoLang - Giulio De DonatoCreare Docker da zero con GoLang - Giulio De Donato
Creare Docker da zero con GoLang - Giulio De DonatoCodemotion
 
Wonderful world of (distributed) SCM or VCS
Wonderful world of (distributed) SCM or VCSWonderful world of (distributed) SCM or VCS
Wonderful world of (distributed) SCM or VCSVlatko Kosturjak
 
OpenStack Swift on virtualbox
OpenStack Swift on virtualboxOpenStack Swift on virtualbox
OpenStack Swift on virtualboxAtul Jha
 
Porting your favourite cmdline tool to Android
Porting your favourite cmdline tool to AndroidPorting your favourite cmdline tool to Android
Porting your favourite cmdline tool to AndroidVlatko Kosturjak
 

What's hot (20)

find & improve some bottleneck in Debian project (DebConf14 LT)
find & improve some bottleneck in Debian project (DebConf14 LT)find & improve some bottleneck in Debian project (DebConf14 LT)
find & improve some bottleneck in Debian project (DebConf14 LT)
 
Better delivery with DevOps Driven Development
Better delivery with DevOps Driven DevelopmentBetter delivery with DevOps Driven Development
Better delivery with DevOps Driven Development
 
Puppet at GitHub
Puppet at GitHubPuppet at GitHub
Puppet at GitHub
 
Let the contribution begin (EST futures)
Let the contribution begin  (EST futures)Let the contribution begin  (EST futures)
Let the contribution begin (EST futures)
 
Package Drone @ Eclipse Demo Camp Munich 2015
Package Drone @ Eclipse Demo Camp Munich 2015Package Drone @ Eclipse Demo Camp Munich 2015
Package Drone @ Eclipse Demo Camp Munich 2015
 
MongoDB World 2019 Builder's Fest - Ready, Git set ... Go!
MongoDB World 2019 Builder's Fest - Ready, Git set ... Go!MongoDB World 2019 Builder's Fest - Ready, Git set ... Go!
MongoDB World 2019 Builder's Fest - Ready, Git set ... Go!
 
Introduction to Google Web Toolkit - part 1
Introduction to Google Web Toolkit - part 1Introduction to Google Web Toolkit - part 1
Introduction to Google Web Toolkit - part 1
 
Lets isolate a process with no container like docker
Lets isolate a process with no container like dockerLets isolate a process with no container like docker
Lets isolate a process with no container like docker
 
Python Projects at Neova
Python Projects at NeovaPython Projects at Neova
Python Projects at Neova
 
about Debian "squeeze" @201002 OSC Tokyospring
about Debian "squeeze" @201002 OSC Tokyospringabout Debian "squeeze" @201002 OSC Tokyospring
about Debian "squeeze" @201002 OSC Tokyospring
 
Biscuit: an operating system written in go
Biscuit:  an operating system written in goBiscuit:  an operating system written in go
Biscuit: an operating system written in go
 
Does Cowgirl Dream of Red Swirl?
Does Cowgirl Dream of Red Swirl?Does Cowgirl Dream of Red Swirl?
Does Cowgirl Dream of Red Swirl?
 
Ripping web accessible .git files
Ripping web accessible .git filesRipping web accessible .git files
Ripping web accessible .git files
 
Intro to Git for Drupal 7
Intro to Git for Drupal 7Intro to Git for Drupal 7
Intro to Git for Drupal 7
 
Buildout: creating and deploying repeatable applications in python
Buildout: creating and deploying repeatable applications in pythonBuildout: creating and deploying repeatable applications in python
Buildout: creating and deploying repeatable applications in python
 
Creare Docker da zero con GoLang - Giulio De Donato
Creare Docker da zero con GoLang - Giulio De DonatoCreare Docker da zero con GoLang - Giulio De Donato
Creare Docker da zero con GoLang - Giulio De Donato
 
Wonderful world of (distributed) SCM or VCS
Wonderful world of (distributed) SCM or VCSWonderful world of (distributed) SCM or VCS
Wonderful world of (distributed) SCM or VCS
 
Git training with Devaamo
Git training with DevaamoGit training with Devaamo
Git training with Devaamo
 
OpenStack Swift on virtualbox
OpenStack Swift on virtualboxOpenStack Swift on virtualbox
OpenStack Swift on virtualbox
 
Porting your favourite cmdline tool to Android
Porting your favourite cmdline tool to AndroidPorting your favourite cmdline tool to Android
Porting your favourite cmdline tool to Android
 

Viewers also liked

Museu Antonino de Faro e o turismo no Algarve
Museu Antonino de Faro e o turismo no AlgarveMuseu Antonino de Faro e o turismo no Algarve
Museu Antonino de Faro e o turismo no AlgarveJosé Mesquita
 
Webs we, teenagers, visit (3)
Webs we, teenagers, visit (3)Webs we, teenagers, visit (3)
Webs we, teenagers, visit (3)institut2012
 
SecZone 2011: Scrubbing SAP clean with SOAP
SecZone 2011: Scrubbing SAP clean with SOAPSecZone 2011: Scrubbing SAP clean with SOAP
SecZone 2011: Scrubbing SAP clean with SOAPChris John Riley
 
The search engine experience 2.0 - U of U MBA @DESB_UofU
The search engine experience 2.0 - U of U MBA @DESB_UofUThe search engine experience 2.0 - U of U MBA @DESB_UofU
The search engine experience 2.0 - U of U MBA @DESB_UofUClark T. Bell
 
Fabrication des trophées Ticket for Change 2014 par tri-D
Fabrication des trophées Ticket for Change 2014 par tri-DFabrication des trophées Ticket for Change 2014 par tri-D
Fabrication des trophées Ticket for Change 2014 par tri-DChris Delepierre
 
120 WATSUK 2014 Antony Askew - AutoSys In The Real World
120 WATSUK 2014 Antony Askew -  AutoSys In The Real World120 WATSUK 2014 Antony Askew -  AutoSys In The Real World
120 WATSUK 2014 Antony Askew - AutoSys In The Real WorldPaul Donoghue-Parker
 
The story of MEB Management Services
The story of MEB Management ServicesThe story of MEB Management Services
The story of MEB Management ServicesMEBMgmtServices
 
FILTRATION WATER SERVICES POOL REDUCTION TO PRIVATE LEISURE CENTRE ENERGY SAV...
FILTRATION WATER SERVICES POOL REDUCTION TO PRIVATE LEISURE CENTRE ENERGY SAV...FILTRATION WATER SERVICES POOL REDUCTION TO PRIVATE LEISURE CENTRE ENERGY SAV...
FILTRATION WATER SERVICES POOL REDUCTION TO PRIVATE LEISURE CENTRE ENERGY SAV...DAVID GREEN
 

Viewers also liked (17)

Corrección evaluación operativa 2
Corrección evaluación operativa 2Corrección evaluación operativa 2
Corrección evaluación operativa 2
 
Seo proposal
Seo proposalSeo proposal
Seo proposal
 
Museu Antonino de Faro e o turismo no Algarve
Museu Antonino de Faro e o turismo no AlgarveMuseu Antonino de Faro e o turismo no Algarve
Museu Antonino de Faro e o turismo no Algarve
 
Webs we, teenagers, visit (3)
Webs we, teenagers, visit (3)Webs we, teenagers, visit (3)
Webs we, teenagers, visit (3)
 
Groovy
GroovyGroovy
Groovy
 
SecZone 2011: Scrubbing SAP clean with SOAP
SecZone 2011: Scrubbing SAP clean with SOAPSecZone 2011: Scrubbing SAP clean with SOAP
SecZone 2011: Scrubbing SAP clean with SOAP
 
marathon legs recovery
marathon legs recoverymarathon legs recovery
marathon legs recovery
 
The search engine experience 2.0 - U of U MBA @DESB_UofU
The search engine experience 2.0 - U of U MBA @DESB_UofUThe search engine experience 2.0 - U of U MBA @DESB_UofU
The search engine experience 2.0 - U of U MBA @DESB_UofU
 
Campus La Camilla - Il progetto
Campus La Camilla - Il progettoCampus La Camilla - Il progetto
Campus La Camilla - Il progetto
 
Blue marlin
Blue marlinBlue marlin
Blue marlin
 
Fabrication des trophées Ticket for Change 2014 par tri-D
Fabrication des trophées Ticket for Change 2014 par tri-DFabrication des trophées Ticket for Change 2014 par tri-D
Fabrication des trophées Ticket for Change 2014 par tri-D
 
120 WATSUK 2014 Antony Askew - AutoSys In The Real World
120 WATSUK 2014 Antony Askew -  AutoSys In The Real World120 WATSUK 2014 Antony Askew -  AutoSys In The Real World
120 WATSUK 2014 Antony Askew - AutoSys In The Real World
 
Ruben info 1
Ruben info 1Ruben info 1
Ruben info 1
 
Home golf simulator
Home golf simulatorHome golf simulator
Home golf simulator
 
The story of MEB Management Services
The story of MEB Management ServicesThe story of MEB Management Services
The story of MEB Management Services
 
Goldline catalouge
Goldline catalougeGoldline catalouge
Goldline catalouge
 
FILTRATION WATER SERVICES POOL REDUCTION TO PRIVATE LEISURE CENTRE ENERGY SAV...
FILTRATION WATER SERVICES POOL REDUCTION TO PRIVATE LEISURE CENTRE ENERGY SAV...FILTRATION WATER SERVICES POOL REDUCTION TO PRIVATE LEISURE CENTRE ENERGY SAV...
FILTRATION WATER SERVICES POOL REDUCTION TO PRIVATE LEISURE CENTRE ENERGY SAV...
 

Similar to Git: be social

Similar to Git: be social (20)

GIT from n00b
GIT from n00bGIT from n00b
GIT from n00b
 
Mini git tutorial
Mini git tutorialMini git tutorial
Mini git tutorial
 
Git - An Introduction
Git - An IntroductionGit - An Introduction
Git - An Introduction
 
Introduction to Git and Github
Introduction to Git and Github Introduction to Git and Github
Introduction to Git and Github
 
sample.pptx
sample.pptxsample.pptx
sample.pptx
 
Git 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using GitGit 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using Git
 
Learn Git Basics
Learn Git BasicsLearn Git Basics
Learn Git Basics
 
Introduction to GitHub, Open Source and Tech Article
Introduction to GitHub, Open Source and Tech ArticleIntroduction to GitHub, Open Source and Tech Article
Introduction to GitHub, Open Source and Tech Article
 
3 Git
3 Git3 Git
3 Git
 
390a gitintro 12au
390a gitintro 12au390a gitintro 12au
390a gitintro 12au
 
git.ppt.pdf
git.ppt.pdfgit.ppt.pdf
git.ppt.pdf
 
Git basics
Git basicsGit basics
Git basics
 
Git training v10
Git training v10Git training v10
Git training v10
 
Introduction to git
Introduction to gitIntroduction to git
Introduction to git
 
Git is a distributed version control system .
Git is a distributed version control system .Git is a distributed version control system .
Git is a distributed version control system .
 
Git
GitGit
Git
 
Luis atencio on_git
Luis atencio on_gitLuis atencio on_git
Luis atencio on_git
 
Why Git Sucks and you'll use it anyways
Why Git Sucks and you'll use it anywaysWhy Git Sucks and you'll use it anyways
Why Git Sucks and you'll use it anyways
 
GIT-FirstPart.ppt
GIT-FirstPart.pptGIT-FirstPart.ppt
GIT-FirstPart.ppt
 
Fall18 Git presentation
Fall18 Git presentationFall18 Git presentation
Fall18 Git presentation
 

Recently uploaded

Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandIES VE
 
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1KnowledgeSeed
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEJelle | Nordend
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfOrtus Solutions, Corp
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke
 
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...rajkumar669520
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyanic lab
 
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAlluxio, Inc.
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamtakuyayamamoto1800
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILNatan Silnitsky
 
AI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAlluxio, Inc.
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTier1 app
 
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfA Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfkalichargn70th171
 
AI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning FrameworkAI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning FrameworkAlluxio, Inc.
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessWSO2
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesKrzysztofKkol1
 
GraphAware - Transforming policing with graph-based intelligence analysis
GraphAware - Transforming policing with graph-based intelligence analysisGraphAware - Transforming policing with graph-based intelligence analysis
GraphAware - Transforming policing with graph-based intelligence analysisNeo4j
 

Recently uploaded (20)

Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
AI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in Michelangelo
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfA Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
 
AI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning FrameworkAI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning Framework
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
 
GraphAware - Transforming policing with graph-based intelligence analysis
GraphAware - Transforming policing with graph-based intelligence analysisGraphAware - Transforming policing with graph-based intelligence analysis
GraphAware - Transforming policing with graph-based intelligence analysis
 

Git: be social

  • 1. Git: Be Social Geronimo Orozco gorozco @ gmail.com Sept 2011
  • 2. ● General introduction: – Who I am – Brief intro to VCS ● What is VCS Scope ● Why do we need it ● Types of VCS – Git ● History ● What is Git ● General features ● Traditional Way ● The Git way ● The Three states ● The basic workflow ● Tutorial ● Talk highly based on Pro Git (Seriously this is just a extract and you should read the book)
  • 3. Who am I ? (or why you should listen to me) ● Open Source Advocate User & Developer – 4 years in QA – 6 years as SysAdmin – 6 years as Software Developer – YaCOMAS (2004 released as GPL)
  • 4. Who am I ? (or why you should listen to me) ● Open Source Advocate User & Developer – 4 years in QA – 6 years as SysAdmin – 6 years as Software Developer – YaCOMAS (2004 released as GPL) ● I messed up too many times.
  • 5. Version Control Systems ● Simple: – VCS lets you track your files over time. ● ● ● ● 2012/10/01 Poem: 2012/10/02 Poem: Roses are red, violets are blue
  • 6. Version Control Systems ● Simple: – VCS lets you track your files over time. ● ● ● 2012/10/01 Poem: 2012/10/02 ● Why do you care? Poem: Roses are red, violets are blue
  • 7. Version Control Systems ● Simple: – VCS lets you track your files over time. ● ● ● 2012/10/01 Poem: 2012/10/02 Roses are red, violets are blue ● Why do you care? 2012/10/03 – So when you mess up you can easily get back to a previous working version. Roses are red, violets are blue i tought i was ugly but then i met you
  • 8. Version Control Systems ● Why do we need it: – Backup and Restore – Synchronization. – Short-term undo – Long-term undo – Track Changes – Track Ownership – Sandboxing – Branching and merging
  • 12. History of Git ● Originally Developed by Linus Torvalds ● Currently Maintained by Junio Hamano ● Born to Manage Linux Kernel Development ● Open Source, free (GNU GPL V2)
  • 13. History of Git ● Originally Developed by Linus Torvalds ● Currently Maintained by Junio Hamano ● Born to Manage Linux Kernel Development ● Open Source, free (GNU GPL V2) English slang for a stupid or unpleasant person. Torvalds said: "I'm an egotistical bastard, and I name all my projects after myself. First 'Linux', now 'git'."
  • 14. What is Git? ● Distributed Source Control Management tool ● Born to Manage Linux Kernel Development ● Open Source, free (GNU GPL V2)
  • 15. General features ● Speed ● Simple design ● Strong support for non-linear development (thousands of parallel branches) ● Fully distributed ● Able to handle large projects like the Linux kernel efficiently (speed and data size)
  • 16. a list of file-based changes (traditional way)
  • 17. A mini file system (The Git way)
  • 18. The Git way ● Nearly Every Operation Is Local – Most operations in Git only need local files and resources to operate ● Git Has Integrity – Everything in Git is check-summed before it is stored and is then referred to by that checksum. ● Git Generally Only Adds Data
  • 20. The basic workflow ● You modify files in your working directory. ● You stage the files, adding snapshots of them to your staging area. ● You do a commit, which takes the files as they are in the staging area and stores that snapshot permanently to your Git directory.
  • 22. Installing git ● Ubuntu – $ apt-get install git-core ● Fedora – $ yum install git-core ● Windows – http://code.google.com/p/msysgit
  • 23. Git setup ● General – $ git config --global user.name "John Doe" – $ git config --global user.email johndoe@example.com ● Your Editor – $ git config --global core.editor vim ● Your Diff Tool: – $ git config --global merge.tool vimdiff ● Check your settings: – $ git config --list
  • 24. Getting help ● $ git help <verb> ● $ git <verb> --help ● $ man git-<verb> ● Ex: – $ git help config
  • 25. Git Basics - Recording Changes to the Repository
  • 26. Git Basics - Getting a Git Repository Initializing a Repository in an Existing Directory $ git init – This creates a new subdirectory named .git (The git directory)
  • 27. Git Basics - Getting a Git Repository Cloning an Existing Repository $ git clone https://github.com/patux/YaCOMAS $ git clone repo1 repo2
  • 28. Git Basics - Recording Changes to the Repository (Checking the Status of Your Files) $ git status
  • 29. Git Basics - Getting a Git Repository Tracking New Files $ git add README
  • 30. Git Basics - Recording Changes to the Repository Viewing Your Staged and Unstaged Changes $ git diff
  • 31. Git Basics - Recording Changes to the Repository Committing Your Changes $ git add $ git commit
  • 32. Git Basics - Recording Changes to the Repository Removing files $ rm file $ git status
  • 33. Git Basics - Recording Changes to the Repository Moving files $ git mv file_from file_to $ git status
  • 34. Git Basics – History Viewing the Commit History $ git log ●GUI: ● gitk ● gitg
  • 35. Git Basics – Undoing things Changing your last commit $ git commit -m 'initial commit' $ git add forgotten_file $ git commit --amend
  • 36. Git Basics – Working with remotes Showing your remotes $ git clone https://github.com/patux/YaCOMAS $ git remote $ git remote -v
  • 37. Git Basics – Working with remotes Adding Remote Repositories $ git remote add pb git://github.com/foo/YaCOMAS $ git remote -v
  • 38. Git Basics – Working with remotes Fetching and Pulling from Your Remotes $ git fetch [remote-name] $ git pull [remote-name]
  • 39. Git Basics – Working with remotes Removing and Renaming Remotes $ git remote rename pb paul $ git remote rm paul
  • 40. Git Basics – Working with remotes Pushing to Your Remotes $ git push [remote-name]
  • 41. Git Basics – Working with remotes Pushing to Your Remotes
  • 42. Git Basics – Tagging Listing yout Tags $ git tag $ git tag -l 'v1.4.2.*' $ git tag -a v1.4 -m 'my version 1.4' $ git show v1.4 $ git push origin v1.5 $ git push origin --tags
  • 43. Git Basics – Branches What a Branch Is
  • 44. Git Basics – Branches What a Branch Is $ git branch testing
  • 45. Git Basics – Branches What a Branch Is $ git checkout testing
  • 46. Git Basics – Branches What a Branch Is $ vim test.rb $ git commit -a -m 'made a change'
  • 47. Git Basics – Branches What a Branch Is $ git checkout master
  • 48. Git Basics – Branches What a Branch Is $ vim test.rb $ git commit -a -m 'made other changes'
  • 49. References ● http://git-scm.com/book/ ● http://www.slideshare.net/anildigital/git-introduction ● http://nvie.com/posts/a-successful-git-branching-model/
  • 50. Questions ? geronimo.orozco@intel.com Twitter: @patux Github: https://github.com/patux