Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introduction to Git

Introduction to Git

A talk on how git could change the way we develop software.

I gave this talk to the "The Mobile Company" (http://themobilecompany.com/) developers on April 3th, 2013.

Javi Lorbada

April 03, 2013
Tweet

More Decks by Javi Lorbada

Other Decks in Programming

Transcript

  1. Javi%Lorbada

    View full-size slide

  2. What%is%Git?
    Git$is$an$open%source$distributed
    version$control$system$designed$to$
    handle$everything$from$small$to$very$
    large$projects$with$speed$and$
    efficiency.

    View full-size slide

  3. What%is%Git?
    Git$is$an$open$source$distributed
    version$control$system$designed$to$
    handle$everything$from$small$to$very$
    large$projects$with$speed$and$
    efficiency.

    View full-size slide

  4. What%is%Git?
    Git$is$an$open$source$distributed
    version$control$system$designed$to$
    handle$everything$from$small$to$very$
    large$projects%with$speed%and$
    efficiency.

    View full-size slide

  5. Why%Git?
    •$Distributed$Version$Control.$Almost$
    everything$is$local.
    •$Fast,$time$saving.
    •$Popular$(Github,$Bitbucket...)
    •$Easy$library$integration.
    •$Branching$&$Merging,$Pull$request.

    View full-size slide

  6. Centralized%Version%Control%
    Systems%(CVS,%Subversion...)

    View full-size slide

  7. Distributed%Version%Control%
    Systems%(Git,%Mercurial...)

    View full-size slide

  8. Almost%everything%is%local
    Everything$is$fast
    Every$clone$is$a$backup
    Work$offline

    View full-size slide

  9. No%Network%Needed
    Performing$a$diff
    Viewing$file$history
    Committing$changes
    Merging$branches
    Obtaining$other$revisions$of$a$file
    Switching$branches

    View full-size slide

  10. Git%is%Popular
    •$ObjectiveLC:$AFNetworking,$ASIHTTPRequest
    •$Java:$Jenkins,$Android$SlidingMenu...$
    •$Javascript:$JQuery,$Bootstrap,$boilerplate
    •$Ruby:$Rails,$homebrew...
    How%many%libraries%from%Github%have%we%
    used?

    View full-size slide

  11. Easy%library%integration
    svn:external%O>%git%project
    $%git%submodule%add
    iOS:%Cocoapods%(http://cocoapods.org/)

    View full-size slide

  12. Branching%&%Merging.%
    Pull%request.
    •$Feature$branches
    •$Release$branches$
    •$Hotfix$branches
    Different%types%of%
    branches%we%may%use:
    Pull%request%is%our%
    friend.
    Develop Master

    View full-size slide

  13. Time
    release$
    branches master
    develop hotfixes
    feature$
    branches
    Feature
    for future
    release
    Tag
    1.0
    Major
    feature for
    next release
    From this point on, “next
    release” means the release
    after 1.0
    Severe bug
    xed for
    production:
    hot x 0.2
    Bug xes from rel. branch
    may be continuously
    merged back into develop
    Tag
    0.1
    Tag
    0.2
    Incorporate
    bug x in
    develop
    Only
    bug xes!
    Start of
    release
    branch for
    1.0

    View full-size slide

  14. Git%Mac%Clients
    •%Github
    •%Tower
    •%Gitbox
    •%GitX%(L)
    •%SourceTree
    Git%Windows%Clients
    •%Github
    •%Git%Extensions
    •%GitOCola
    •%SourceTree

    View full-size slide

  15. Sources
    •$http://gitLscm.com/about
    •$http://whygitisbetterthanx.com
    •$http://gitLscm.com/book/$(Dutch$and$Spanish)
    •$http://nvie.com/posts/aLsuccessfulLgitL
    branchingLmodel/

    View full-size slide

  16. Thank%you!
    Javi%Lorbada
    @javi_lorbada
    http://javilorbada.github.com/

    View full-size slide