SlideShare a Scribd company logo
Introduction to git


Lukas Fittl    29th June 2010
Part 1: Theory
git is really intelligent, and
            beautiful.

But it takes some time to fully grasp the way it works.

  Just ask if you need help with your understanding.
The SVN model
                    Server
                  Repository




     svn commit                svn update



                                   Your
          You
                                 colleague




Commits are only shared through the server.
The Git model
            “origin”
           Repository




git push                git pull



                           Your
    You
                         colleague
The Git model
                            “origin”
                           Repository




          git push                         git pull


                         git push REMOTE
                                               Your
              Your
                                            colleague’s
            Repository
                                            repository
                         git pull REMOTE




You can push/pull commits to any remote repository,
  there is no difference between server and client.
So how does that
     work?
First of all, definitions:
•   Working tree
    A directory in your filesystem that is associated with a
    repository, containing files & sub-directories.

•   Repository
    A collection of commits & branches, saved in the .git
    directory.

•   Commit
    A snapshot of your working tree at a certain point in
    time, identified by a revision number.

•   HEAD
    The name for the commit thats currently checked out in
Revision Numbering
• Every commit gets a globally unique
  identifier, not a simple revision number
  git log 00de993ae4a12f286da8bdf24b041c2e8dfc4e3b
  vs
  svn log -r3129


• For commands you can also cut off the end
  of the identifier, as long as that is still
  unique within your repository
  git log 00de993ae4
git clone

   is your starting point for working with
                 existing code

It creates a local repository for you, copying
    & tracking the master branch from the
               specified location.
git clone git@github.com:lfittl/browscap.git ruby-browscap
Remotes
• By default you’ll only have the “origin”
  remote repository, which is the repository
  you did git clone from.

• List existing remotes using git   remote

• Showremote with NAME
  git
         details
                 show

• Add new remotes using
  git remote add NAME       URL
Commits = local
•   git commit only affects your repository,
    not the origin or any other remote
    repository
•   git push in order to share your commits

• Commits are cheap & fast
• Commit as often as possible!
The index
• When you edit/add/remove files, only your
    working tree changes
• To commit changes, you first save them in
    the index with git add or git rm
•   git status shows the current index

•   git commit commits only the changes
    saved in the index, and clears the index
    afterwards
But there’s also git commit -a to commit
all unsaved working tree changes without
         adding them to the index.



   * You still have to use git   rm   for removing files
And don’t forget to

   git push
Also there is

          git log
         git diff
       git annotate


And they do what you expect.

     man git-annotate
            ...


     is also your friend.
Branching
    &
 Merging
Branches are cheap.
Merging just works.
Branch
     =
Named commit
Per default you always work on the
          master branch.
git branch

 shows you the branch you are currently on
(marked with *) & lists the available branches
A branch is local to your repository,
create as many or as little as you like.
Create a new one:
   git branch BRANCH



Checkout an existing one:
  git checkout BRANCH
You can also push all commits of your
 current branch to a remote branch:

      git push REMOTE BRANCH

      git push origin master
             git push
Or checkout someone else’s branch,
 work on it, and then share your
             changes:

         git branch -r
   git checkout REMOTE_BRANCH
       git branch BRANCH
               ...
            git push
git merge BRANCH

Merges the specified branch into your
          current branch.

 You must have a common ancestor.

If the merge fails, use git status to see
    the conflicts, edit the files, git add
        them and then git commit.
You can delete the merged branch
             afterwards:
              git branch -d BRANCH


git will complain if this would result in lost changes (use -D to override).
git push REMOTE :REMOTE_BRANCH

   to delete a remote branch.

                       Careful!
  This won’t check whether the branch is already merged.
Tips & Tricks
git gui

is your friend, especially when
       you’re confused.
git checkout FILENAME

to revert a file changed in the working
          tree back to HEAD
           Only if you didn’t commit yet.
git revert REVISION

    to revert a complete revision.

Creates a new commit that removes the
               changes.
.gitignore
        instead of
svn propset svn:ignore
Single .git directory in the root directory,
    instead of multiple .svn directories
Most relevant configuration is stored in the

                .git/config
         remotes, author name/email, etc.
git stash
git submodule
git cherry-pick
Part 2: Workshop
Further information
•   Git - SVN Crash Course
    http://git.or.cz/course/svn.html


•   The Git Community Book
    http://book.git-scm.com/index.html


•   John Wiegley: Git from the bottom up
    http://ftp.newartisans.com/pub/git.from.bottom.up.pdf


•   Github: a social source-code sharing site
    http://github.com/

More Related Content

What's hot

Git and GitHub | Concept about Git and GitHub Process | Git Process overview
Git and GitHub | Concept about Git and GitHub Process | Git Process overviewGit and GitHub | Concept about Git and GitHub Process | Git Process overview
Git and GitHub | Concept about Git and GitHub Process | Git Process overview
Rueful Robin
 
Introduction git
Introduction gitIntroduction git
Introduction git
Dian Sigit Prastowo
 
Git training v10
Git training v10Git training v10
Git training v10
Skander Hamza
 
Git for beginners
Git for beginnersGit for beginners
Git for beginners
Arulmurugan Rajaraman
 
Git & GitHub WorkShop
Git & GitHub WorkShopGit & GitHub WorkShop
Git & GitHub WorkShop
SheilaJimenezMorejon
 
Git in 10 minutes
Git in 10 minutesGit in 10 minutes
Git in 10 minutes
Safique Ahmed Faruque
 
Git basic
Git basicGit basic
Git basic
Emran Ul Hadi
 
Introduction to Git and Github
Introduction to Git and GithubIntroduction to Git and Github
Introduction to Git and Github
Roland Emmanuel Salunga
 
Advanced Git Tutorial
Advanced Git TutorialAdvanced Git Tutorial
Advanced Git Tutorial
Sage Sharp
 
Learning git
Learning gitLearning git
Learning git
Sid Anand
 
Git basics
Git basicsGit basics
Git basics
GHARSALLAH Mohamed
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
Yan Vugenfirer
 
The everyday developer's guide to version control with Git
The everyday developer's guide to version control with GitThe everyday developer's guide to version control with Git
The everyday developer's guide to version control with Git
E Carter
 
Git and Github Session
Git and Github SessionGit and Github Session
Git and Github Session
GoogleDevelopersStud1
 
Git best practices workshop
Git best practices workshopGit best practices workshop
Git best practices workshop
Otto Kekäläinen
 
Github - Git Training Slides: Foundations
Github - Git Training Slides: FoundationsGithub - Git Training Slides: Foundations
Github - Git Training Slides: Foundations
Lee Hanxue
 
Intro to Git and GitHub
Intro to Git and GitHubIntro to Git and GitHub
Intro to Git and GitHub
Panagiotis Papadopoulos
 
Git and GitHub
Git and GitHubGit and GitHub
Git and GitHub
James Gray
 
Git - An Introduction
Git - An IntroductionGit - An Introduction
Git - An Introduction
Behzad Altaf
 
Introduction to github slideshare
Introduction to github slideshareIntroduction to github slideshare
Introduction to github slideshare
Rakesh Sukumar
 

What's hot (20)

Git and GitHub | Concept about Git and GitHub Process | Git Process overview
Git and GitHub | Concept about Git and GitHub Process | Git Process overviewGit and GitHub | Concept about Git and GitHub Process | Git Process overview
Git and GitHub | Concept about Git and GitHub Process | Git Process overview
 
Introduction git
Introduction gitIntroduction git
Introduction git
 
Git training v10
Git training v10Git training v10
Git training v10
 
Git for beginners
Git for beginnersGit for beginners
Git for beginners
 
Git & GitHub WorkShop
Git & GitHub WorkShopGit & GitHub WorkShop
Git & GitHub WorkShop
 
Git in 10 minutes
Git in 10 minutesGit in 10 minutes
Git in 10 minutes
 
Git basic
Git basicGit basic
Git basic
 
Introduction to Git and Github
Introduction to Git and GithubIntroduction to Git and Github
Introduction to Git and Github
 
Advanced Git Tutorial
Advanced Git TutorialAdvanced Git Tutorial
Advanced Git Tutorial
 
Learning git
Learning gitLearning git
Learning git
 
Git basics
Git basicsGit basics
Git basics
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
 
The everyday developer's guide to version control with Git
The everyday developer's guide to version control with GitThe everyday developer's guide to version control with Git
The everyday developer's guide to version control with Git
 
Git and Github Session
Git and Github SessionGit and Github Session
Git and Github Session
 
Git best practices workshop
Git best practices workshopGit best practices workshop
Git best practices workshop
 
Github - Git Training Slides: Foundations
Github - Git Training Slides: FoundationsGithub - Git Training Slides: Foundations
Github - Git Training Slides: Foundations
 
Intro to Git and GitHub
Intro to Git and GitHubIntro to Git and GitHub
Intro to Git and GitHub
 
Git and GitHub
Git and GitHubGit and GitHub
Git and GitHub
 
Git - An Introduction
Git - An IntroductionGit - An Introduction
Git - An Introduction
 
Introduction to github slideshare
Introduction to github slideshareIntroduction to github slideshare
Introduction to github slideshare
 

Similar to Introduction to Git

Mastering GIT
Mastering GITMastering GIT
Mastering GIT
Hasnaeen Rahman
 
Introduction to Git (part 1)
Introduction to Git (part 1)Introduction to Git (part 1)
Introduction to Git (part 1)
Salvatore Cordiano
 
Git 101
Git 101Git 101
Git 101
Sachet Mittal
 
Subversion to Git Migration
Subversion to Git MigrationSubversion to Git Migration
Subversion to Git Migration
Manish Chakravarty
 
Git Tech Talk
Git  Tech TalkGit  Tech Talk
Git Tech Talk
Chris Johnson
 
Git and Github slides.pdf
Git and Github slides.pdfGit and Github slides.pdf
Git and Github slides.pdf
Tilton2
 
Git and Github workshop ppt slide by slide
Git and Github workshop ppt slide by slideGit and Github workshop ppt slide by slide
Git and Github workshop ppt slide by slide
RaghavendraVattikuti1
 
Git basics a starter on git and its ecosystem
Git basics  a starter on git and its ecosystemGit basics  a starter on git and its ecosystem
Git basics a starter on git and its ecosystemFrançois D'Agostini
 
Git 101: Force-sensitive to Jedi padawan
Git 101: Force-sensitive to Jedi padawanGit 101: Force-sensitive to Jedi padawan
Git 101: Force-sensitive to Jedi padawan
James Ford
 
Beginner's Guide to Version Control with Git
Beginner's Guide to Version Control with GitBeginner's Guide to Version Control with Git
Beginner's Guide to Version Control with GitRobert Lee-Cann
 
Git for developers
Git for developersGit for developers
Git for developers
Hacen Dadda
 
Git in a nutshell
Git in a nutshellGit in a nutshell
Git in a nutshell
Pranesh Vittal
 
Session git
Session gitSession git
Session git
Roni Saha
 
Git tutorial git branches 20131206-Bryan
Git tutorial   git branches 20131206-BryanGit tutorial   git branches 20131206-Bryan
Git tutorial git branches 20131206-Bryan
LearningTech
 
Embedded Systems: Lecture 12: Introduction to Git & GitHub (Part 3)
Embedded Systems: Lecture 12: Introduction to Git & GitHub (Part 3)Embedded Systems: Lecture 12: Introduction to Git & GitHub (Part 3)
Embedded Systems: Lecture 12: Introduction to Git & GitHub (Part 3)
Ahmed El-Arabawy
 
Git
GitGit
Git slides
Git slidesGit slides
Git slides
Nanyak S
 
Git
GitGit
Nina Zakharenko - Introduction to Git - Start SLC 2015
Nina Zakharenko - Introduction to Git - Start SLC 2015Nina Zakharenko - Introduction to Git - Start SLC 2015
Nina Zakharenko - Introduction to Git - Start SLC 2015
Nina Zakharenko
 
Source control management
Source control managementSource control management
Source control management
Owen Winkler
 

Similar to Introduction to Git (20)

Mastering GIT
Mastering GITMastering GIT
Mastering GIT
 
Introduction to Git (part 1)
Introduction to Git (part 1)Introduction to Git (part 1)
Introduction to Git (part 1)
 
Git 101
Git 101Git 101
Git 101
 
Subversion to Git Migration
Subversion to Git MigrationSubversion to Git Migration
Subversion to Git Migration
 
Git Tech Talk
Git  Tech TalkGit  Tech Talk
Git Tech Talk
 
Git and Github slides.pdf
Git and Github slides.pdfGit and Github slides.pdf
Git and Github slides.pdf
 
Git and Github workshop ppt slide by slide
Git and Github workshop ppt slide by slideGit and Github workshop ppt slide by slide
Git and Github workshop ppt slide by slide
 
Git basics a starter on git and its ecosystem
Git basics  a starter on git and its ecosystemGit basics  a starter on git and its ecosystem
Git basics a starter on git and its ecosystem
 
Git 101: Force-sensitive to Jedi padawan
Git 101: Force-sensitive to Jedi padawanGit 101: Force-sensitive to Jedi padawan
Git 101: Force-sensitive to Jedi padawan
 
Beginner's Guide to Version Control with Git
Beginner's Guide to Version Control with GitBeginner's Guide to Version Control with Git
Beginner's Guide to Version Control with Git
 
Git for developers
Git for developersGit for developers
Git for developers
 
Git in a nutshell
Git in a nutshellGit in a nutshell
Git in a nutshell
 
Session git
Session gitSession git
Session git
 
Git tutorial git branches 20131206-Bryan
Git tutorial   git branches 20131206-BryanGit tutorial   git branches 20131206-Bryan
Git tutorial git branches 20131206-Bryan
 
Embedded Systems: Lecture 12: Introduction to Git & GitHub (Part 3)
Embedded Systems: Lecture 12: Introduction to Git & GitHub (Part 3)Embedded Systems: Lecture 12: Introduction to Git & GitHub (Part 3)
Embedded Systems: Lecture 12: Introduction to Git & GitHub (Part 3)
 
Git
GitGit
Git
 
Git slides
Git slidesGit slides
Git slides
 
Git
GitGit
Git
 
Nina Zakharenko - Introduction to Git - Start SLC 2015
Nina Zakharenko - Introduction to Git - Start SLC 2015Nina Zakharenko - Introduction to Git - Start SLC 2015
Nina Zakharenko - Introduction to Git - Start SLC 2015
 
Source control management
Source control managementSource control management
Source control management
 

More from Lukas Fittl

Advanced pg_stat_statements: Filtering, Regression Testing & more
Advanced pg_stat_statements: Filtering, Regression Testing & moreAdvanced pg_stat_statements: Filtering, Regression Testing & more
Advanced pg_stat_statements: Filtering, Regression Testing & more
Lukas Fittl
 
Lean Startup & UX for Agile Teams
Lean Startup & UX for Agile TeamsLean Startup & UX for Agile Teams
Lean Startup & UX for Agile Teams
Lukas Fittl
 
Lean Stack - A Story Of Continuous Improvement
Lean Stack - A Story Of Continuous ImprovementLean Stack - A Story Of Continuous Improvement
Lean Stack - A Story Of Continuous Improvement
Lukas Fittl
 
Lean & Agile ♥ UX Design
Lean & Agile ♥ UX DesignLean & Agile ♥ UX Design
Lean & Agile ♥ UX Design
Lukas Fittl
 
We Built It, And They Didn't Come!
We Built It, And They Didn't Come!We Built It, And They Didn't Come!
We Built It, And They Didn't Come!
Lukas Fittl
 
Actionable Metrics @ Lean Startup Meetup Berlin
Actionable Metrics @ Lean Startup Meetup BerlinActionable Metrics @ Lean Startup Meetup Berlin
Actionable Metrics @ Lean Startup Meetup Berlin
Lukas Fittl
 
Enabling Innovation using Lean Startup
Enabling Innovation using Lean StartupEnabling Innovation using Lean Startup
Enabling Innovation using Lean Startup
Lukas Fittl
 
Lean Startup Essentials - March 2012
Lean Startup Essentials - March 2012Lean Startup Essentials - March 2012
Lean Startup Essentials - March 2012
Lukas Fittl
 
Lean Startup Essentials - Le Camping Edition
Lean Startup Essentials - Le Camping EditionLean Startup Essentials - Le Camping Edition
Lean Startup Essentials - Le Camping Edition
Lukas Fittl
 
Lean Startup Essentials - SeedHack Edition
Lean Startup Essentials - SeedHack EditionLean Startup Essentials - SeedHack Edition
Lean Startup Essentials - SeedHack Edition
Lukas Fittl
 
Lean Startup Essentials - STARTup Live Hagenberg
Lean Startup Essentials - STARTup Live HagenbergLean Startup Essentials - STARTup Live Hagenberg
Lean Startup Essentials - STARTup Live Hagenberg
Lukas Fittl
 
Lean Startup Essentials - STARTup Live Graz
Lean Startup Essentials - STARTup Live GrazLean Startup Essentials - STARTup Live Graz
Lean Startup Essentials - STARTup Live Graz
Lukas Fittl
 

More from Lukas Fittl (12)

Advanced pg_stat_statements: Filtering, Regression Testing & more
Advanced pg_stat_statements: Filtering, Regression Testing & moreAdvanced pg_stat_statements: Filtering, Regression Testing & more
Advanced pg_stat_statements: Filtering, Regression Testing & more
 
Lean Startup & UX for Agile Teams
Lean Startup & UX for Agile TeamsLean Startup & UX for Agile Teams
Lean Startup & UX for Agile Teams
 
Lean Stack - A Story Of Continuous Improvement
Lean Stack - A Story Of Continuous ImprovementLean Stack - A Story Of Continuous Improvement
Lean Stack - A Story Of Continuous Improvement
 
Lean & Agile ♥ UX Design
Lean & Agile ♥ UX DesignLean & Agile ♥ UX Design
Lean & Agile ♥ UX Design
 
We Built It, And They Didn't Come!
We Built It, And They Didn't Come!We Built It, And They Didn't Come!
We Built It, And They Didn't Come!
 
Actionable Metrics @ Lean Startup Meetup Berlin
Actionable Metrics @ Lean Startup Meetup BerlinActionable Metrics @ Lean Startup Meetup Berlin
Actionable Metrics @ Lean Startup Meetup Berlin
 
Enabling Innovation using Lean Startup
Enabling Innovation using Lean StartupEnabling Innovation using Lean Startup
Enabling Innovation using Lean Startup
 
Lean Startup Essentials - March 2012
Lean Startup Essentials - March 2012Lean Startup Essentials - March 2012
Lean Startup Essentials - March 2012
 
Lean Startup Essentials - Le Camping Edition
Lean Startup Essentials - Le Camping EditionLean Startup Essentials - Le Camping Edition
Lean Startup Essentials - Le Camping Edition
 
Lean Startup Essentials - SeedHack Edition
Lean Startup Essentials - SeedHack EditionLean Startup Essentials - SeedHack Edition
Lean Startup Essentials - SeedHack Edition
 
Lean Startup Essentials - STARTup Live Hagenberg
Lean Startup Essentials - STARTup Live HagenbergLean Startup Essentials - STARTup Live Hagenberg
Lean Startup Essentials - STARTup Live Hagenberg
 
Lean Startup Essentials - STARTup Live Graz
Lean Startup Essentials - STARTup Live GrazLean Startup Essentials - STARTup Live Graz
Lean Startup Essentials - STARTup Live Graz
 

Recently uploaded

Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
Abida Shariff
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 

Recently uploaded (20)

Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 

Introduction to Git

  • 1. Introduction to git Lukas Fittl 29th June 2010
  • 3. git is really intelligent, and beautiful. But it takes some time to fully grasp the way it works. Just ask if you need help with your understanding.
  • 4. The SVN model Server Repository svn commit svn update Your You colleague Commits are only shared through the server.
  • 5. The Git model “origin” Repository git push git pull Your You colleague
  • 6. The Git model “origin” Repository git push git pull git push REMOTE Your Your colleague’s Repository repository git pull REMOTE You can push/pull commits to any remote repository, there is no difference between server and client.
  • 7. So how does that work?
  • 8. First of all, definitions: • Working tree A directory in your filesystem that is associated with a repository, containing files & sub-directories. • Repository A collection of commits & branches, saved in the .git directory. • Commit A snapshot of your working tree at a certain point in time, identified by a revision number. • HEAD The name for the commit thats currently checked out in
  • 9. Revision Numbering • Every commit gets a globally unique identifier, not a simple revision number git log 00de993ae4a12f286da8bdf24b041c2e8dfc4e3b vs svn log -r3129 • For commands you can also cut off the end of the identifier, as long as that is still unique within your repository git log 00de993ae4
  • 10. git clone is your starting point for working with existing code It creates a local repository for you, copying & tracking the master branch from the specified location. git clone git@github.com:lfittl/browscap.git ruby-browscap
  • 11. Remotes • By default you’ll only have the “origin” remote repository, which is the repository you did git clone from. • List existing remotes using git remote • Showremote with NAME git details show • Add new remotes using git remote add NAME URL
  • 12. Commits = local • git commit only affects your repository, not the origin or any other remote repository • git push in order to share your commits • Commits are cheap & fast • Commit as often as possible!
  • 13. The index • When you edit/add/remove files, only your working tree changes • To commit changes, you first save them in the index with git add or git rm • git status shows the current index • git commit commits only the changes saved in the index, and clears the index afterwards
  • 14. But there’s also git commit -a to commit all unsaved working tree changes without adding them to the index. * You still have to use git rm for removing files
  • 15. And don’t forget to git push
  • 16. Also there is git log git diff git annotate And they do what you expect. man git-annotate ... is also your friend.
  • 17. Branching & Merging
  • 20. Branch = Named commit
  • 21. Per default you always work on the master branch.
  • 22. git branch shows you the branch you are currently on (marked with *) & lists the available branches
  • 23. A branch is local to your repository, create as many or as little as you like.
  • 24. Create a new one: git branch BRANCH Checkout an existing one: git checkout BRANCH
  • 25. You can also push all commits of your current branch to a remote branch: git push REMOTE BRANCH git push origin master git push
  • 26. Or checkout someone else’s branch, work on it, and then share your changes: git branch -r git checkout REMOTE_BRANCH git branch BRANCH ... git push
  • 27. git merge BRANCH Merges the specified branch into your current branch. You must have a common ancestor. If the merge fails, use git status to see the conflicts, edit the files, git add them and then git commit.
  • 28. You can delete the merged branch afterwards: git branch -d BRANCH git will complain if this would result in lost changes (use -D to override).
  • 29. git push REMOTE :REMOTE_BRANCH to delete a remote branch. Careful! This won’t check whether the branch is already merged.
  • 31. git gui is your friend, especially when you’re confused.
  • 32. git checkout FILENAME to revert a file changed in the working tree back to HEAD Only if you didn’t commit yet.
  • 33. git revert REVISION to revert a complete revision. Creates a new commit that removes the changes.
  • 34. .gitignore instead of svn propset svn:ignore
  • 35. Single .git directory in the root directory, instead of multiple .svn directories
  • 36. Most relevant configuration is stored in the .git/config remotes, author name/email, etc.
  • 41. Further information • Git - SVN Crash Course http://git.or.cz/course/svn.html • The Git Community Book http://book.git-scm.com/index.html • John Wiegley: Git from the bottom up http://ftp.newartisans.com/pub/git.from.bottom.up.pdf • Github: a social source-code sharing site http://github.com/

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n