SlideShare a Scribd company logo
1 of 95
Advanced Git



         David Soria Parra I 1 Jun 2010 | @dsp_
                              1.




                                                  © 2010 Mayflower GmbH

Montag, 14. Juni 2010
What I expect




                          Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                1,

Montag, 14. Juni 2010
What I expect



          I    You already used Git




                                      Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                            1,

Montag, 14. Juni 2010
What I expect



          I    You already used Git
          I    You know how to commit




                                        Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                              1,

Montag, 14. Juni 2010
What I expect



          I    You already used Git
          I    You know how to commit
          I    You know how to branch




                                        Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                              1,

Montag, 14. Juni 2010
What I expect



          I    You already used Git
          I    You know how to commit
          I    You know how to branch
          I    You know remotes




                                        Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                              1,

Montag, 14. Juni 2010
Motivation




                        Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                              1,

Montag, 14. Juni 2010
Motivation



          I    OSS Projects migrate: Zend Framework, phpBB, PHPUnit, ...




                                                           Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                                 1,

Montag, 14. Juni 2010
Motivation



          I    OSS Projects migrate: Zend Framework, phpBB, PHPUnit, ...
          I    Bigger projects have more complex workflows




                                                            Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                                  1,

Montag, 14. Juni 2010
Motivation



          I    OSS Projects migrate: Zend Framework, phpBB, PHPUnit, ...
          I    Bigger projects have more complex workflows
          I    Git is at the beginning of the tech lifecycle




                                                               Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                                     1,

Montag, 14. Juni 2010
Beispiel

    developer




                                   Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                         1,

Montag, 14. Juni 2010
A typical work flow




                 Edit




                               Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                     1,

Montag, 14. Juni 2010
A typical work flow




                 Edit          Commit




                                        Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                              1,

Montag, 14. Juni 2010
A typical work flow




                 Edit          Commit




                                        Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                              1,

Montag, 14. Juni 2010
A typical work flow




                 Edit          Commit                    Publish




                                        Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                              1,

Montag, 14. Juni 2010
Feature Branch
                          „Every feature on a branch“




                                                        Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                              1,

Montag, 14. Juni 2010
Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                              1,

Montag, 14. Juni 2010
Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                              1,

Montag, 14. Juni 2010
master

                                 Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                       1,

Montag, 14. Juni 2010
master

                                 Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                       1,

Montag, 14. Juni 2010
master

                                 Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                       1,

Montag, 14. Juni 2010
feature-x



                                    master

                                             Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                   1,

Montag, 14. Juni 2010
feature-x



                                    master

                                             Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                   1,

Montag, 14. Juni 2010
feature-x



                                                       master
                        DAG (Directed Acyclic Graph)




                                                                Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                                      1,

Montag, 14. Juni 2010
master
                                                 feature-y



                        git checkout feature-y               git rebase master


                                                                           Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                                                 1,

Montag, 14. Juni 2010
master
                                                 feature-y



                        git checkout feature-y               git rebase master


                                                                           Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                                                 1,

Montag, 14. Juni 2010
master
                                                 feature-y



                        git checkout feature-y               git rebase master


                                                                           Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                                                 1,

Montag, 14. Juni 2010
master




                                                                                                feature-y
                        git checkout feature-y            git rebase master


                                                                        Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                                              1,

Montag, 14. Juni 2010
Branch and Rebase




               Commit




                              Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                    1,

Montag, 14. Juni 2010
Branch and Rebase




               Commit         Rebase




                                       Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                             1,

Montag, 14. Juni 2010
Branch and Rebase




               Commit         Rebase




                                       Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                             1,

Montag, 14. Juni 2010
Branch and Rebase




               Commit         Rebase                    Merge




                                       Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                             1,

Montag, 14. Juni 2010
Interactive Rebasing




         git rebase -i bf0225ae   pick / rotate        squash


                                                  Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                        1,

Montag, 14. Juni 2010
Interactive Rebasing




                                                                   feature-y
         git rebase -i bf0225ae   pick / rotate        squash


                                                  Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                        1,

Montag, 14. Juni 2010
Interactive Rebasing




                                      bf0255ae




                                                                   feature-y
         git rebase -i bf0225ae   pick / rotate        squash


                                                  Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                        1,

Montag, 14. Juni 2010
Interactive Rebasing




                                      bf0255ae




                                                                   feature-y
         git rebase -i bf0225ae   pick / rotate        squash


                                                  Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                        1,

Montag, 14. Juni 2010
Interactive Rebasing




                                      bf0255ae




                                                                   feature-y
         git rebase -i bf0225ae   pick / rotate        squash


                                                  Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                        1,

Montag, 14. Juni 2010
Interactive Rebasing




                                      bf0255ae




                                                  feature-y
         git rebase -i bf0225ae   pick / rotate               squash


                                                     Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                           1,

Montag, 14. Juni 2010
„Never rebase branches that you pulled or
                        pushed. Rebase local branches only!“




                                                       Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                             1,

Montag, 14. Juni 2010
Index




                        Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                              1,

Montag, 14. Juni 2010
$ git status
                    # On branch master
                    # Changed but not updated:
                    # (use "git add <file>..." to update what will be committed)
                    # (use "git checkout -- <file>..." to discard changes in working directory)
                    #
                    #      modified: README.md
                    #
                    no changes added to commit (use "git add" and/or "git commit -a")

                    $ git commit
                    no changes added to commit (use "git add" and/or "git commit -a")




                                                                              Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                                                    1,

Montag, 14. Juni 2010
Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                              1,

Montag, 14. Juni 2010
working directory   index     repository




                                            Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                  1,

Montag, 14. Juni 2010
working directory           index     repository


                            git add [file]




                                                    Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                          1,

Montag, 14. Juni 2010
working directory            index     repository


                            git add [file]

                           git stage [file]




                                                     Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                           1,

Montag, 14. Juni 2010
working directory            index                  repository


                            git add [file]

                           git stage [file]

                                                     git commit




                                                                  Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                                        1,

Montag, 14. Juni 2010
working directory            index                  repository


                            git add [file]

                           git stage [file]

                                                     git commit

                                      git commit -a




                                                                  Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                                        1,

Montag, 14. Juni 2010
static int run_builtin(struct cmd_st
                        +     int status, help;
                             struct stat st;
                             const char *prefix;

                             prefix = NULL;
                             help = argc == 2 && !strcmp(argv[1],
                             if (!help) {
                                   if (p->option & RUN_SETUP)
                                         prefix = setup_git_directory();

                        +          if (use_pager == -1 && p->option
                        +                use_pager = check_pager_c
                        +          if (use_pager == -1 && p->option
                        +
                             }
                                          use_pager = 1;
                                                                                                Commit
                             commit_pager_choice();




                                                                          git add -p



                                                                                       Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                                                             1,

Montag, 14. Juni 2010
static int run_builtin(struct cmd_st
                        +     int status, help;
                             struct stat st;
                             const char *prefix;

                             prefix = NULL;
                             help = argc == 2 && !strcmp(argv[1],
                             if (!help) {
                                   if (p->option & RUN_SETUP)
                                         prefix = setup_git_directory();

                        +          if (use_pager == -1 && p->option
                        +                use_pager = check_pager_c
                        +          if (use_pager == -1 && p->option
                        +
                             }
                                          use_pager = 1;
                                                                                                Commit
                             commit_pager_choice();




                                                                          git add -p



                                                                                       Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                                                             1,

Montag, 14. Juni 2010
New concepts
                        New possibilities



                                            Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                  1,

Montag, 14. Juni 2010
Project




                        Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                              1,

Montag, 14. Juni 2010
externe Module




             submodules
                          Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                1,

Montag, 14. Juni 2010
phpBB




                                            git init phpBB


                        git submodule add git://..../zf2.git Zend Framework 2

                                                                           Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                                                 1,

Montag, 14. Juni 2010
phpBB


                                                                 git.zendframework.com
                        Zend Framework 2




                                            git init phpBB


                        git submodule add git://..../zf2.git Zend Framework 2

                                                                           Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                                                 1,

Montag, 14. Juni 2010
phpBB


                        Zend Framework 2                        git.zendframework.com


                        Symfony 2                               git.github.com




                    git clone              git submodule init         git submodule update



                                                                         Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                                               1,

Montag, 14. Juni 2010
phpBB


                        Zend Framework 2                        git.zendframework.com


                        Symfony 2                               git.github.com




                    git clone              git submodule init         git submodule update



                                                                         Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                                               1,

Montag, 14. Juni 2010
phpBB


                        Zend Framework 2                        git.zendframework.com


                        Symfony 2                               git.github.com




                    git clone              git submodule init         git submodule update



                                                                         Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                                               1,

Montag, 14. Juni 2010
mr obvious says:   Git is not subversion




                                                   Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                         1,

Montag, 14. Juni 2010
system integration




     Administration
                                        Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                              1,

Montag, 14. Juni 2010
Windows
                        Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                              1,

Montag, 14. Juni 2010
CRLF




                        Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                              1,

Montag, 14. Juni 2010
CRLF



          I    There is no svn:eol-style




                                           Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                 1,

Montag, 14. Juni 2010
CRLF



          I    There is no svn:eol-style




                                           Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                 1,

Montag, 14. Juni 2010
CRLF



          I    There is no svn:eol-style


          I    Modifications but no commit possible?




                                                      Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                            1,

Montag, 14. Juni 2010
CRLF



          I    There is no svn:eol-style


          I    Modifications but no commit possible?
          I    git config core.autocrlf true




                                                      Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                            1,

Montag, 14. Juni 2010
CRLF



          I    There is no svn:eol-style


          I    Modifications but no commit possible?
          I    git config core.autocrlf true
          I    git help config




                                                      Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                            1,

Montag, 14. Juni 2010
FileMode




                        Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                              1,

Montag, 14. Juni 2010
FileMode



          I    Windows Share or FAT filesystem change your exec bit?




                                                          Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                                1,

Montag, 14. Juni 2010
FileMode



          I    Windows Share or FAT filesystem change your exec bit?
          I    git config core.fileMode false to the rescue




                                                          Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                                1,

Montag, 14. Juni 2010
Server




                        Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                              1,

Montag, 14. Juni 2010
Server



          I    No git daemon




                               Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                     1,

Montag, 14. Juni 2010
Server



          I    No git daemon
          I    No symlinks (FAT filesystem)




                                             Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                   1,

Montag, 14. Juni 2010
Server



          I    No git daemon
          I    No symlinks (FAT filesystem)
                 I      git config core.symlinks true




                                                       Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                             1,

Montag, 14. Juni 2010
Reflog




                        Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                              1,

Montag, 14. Juni 2010
Reflog




                        Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                              1,

Montag, 14. Juni 2010
Reflog



          I    Your No 1. tool for recovery




                                              Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                    1,

Montag, 14. Juni 2010
Reflog



          I    Your No 1. tool for recovery




                                              Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                    1,

Montag, 14. Juni 2010
Reflog



          I    Your No 1. tool for recovery


          I learn it, it‘s IMPORTANT!




                                              Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                    1,

Montag, 14. Juni 2010
HEAD@{1}
                git checkout test   git checkout master              git branch -D test



                                                                     Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                                           1,

Montag, 14. Juni 2010
HEAD@{1}
                git checkout test   git checkout master              git branch -D test



                                                                     Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                                           1,

Montag, 14. Juni 2010
Git can be tricky...
                            ...but it‘s simple once you
                                           understood it.




                                                   Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                                         1,

Montag, 14. Juni 2010
Summary




                        Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                              1,

Montag, 14. Juni 2010
Summary



          I    DAG and Rebase




                                Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                      1,

Montag, 14. Juni 2010
Summary



          I    DAG and Rebase
          I    Index




                                Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                      1,

Montag, 14. Juni 2010
Summary



          I    DAG and Rebase
          I    Index
          I    Submodule




                                Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                      1,

Montag, 14. Juni 2010
Summary



          I    DAG and Rebase
          I    Index
          I    Submodule
          I    Reflog




                                Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                      1,

Montag, 14. Juni 2010
More....




                        Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                              1,

Montag, 14. Juni 2010
More....



          I    Concepts




                          Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                1,

Montag, 14. Juni 2010
More....



          I    Concepts
                I       Storage format




                                         Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                               1,

Montag, 14. Juni 2010
More....



          I    Concepts
                I       Storage format
                I       Refspecs




                                         Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                               1,

Montag, 14. Juni 2010
More....



          I    Concepts
                I       Storage format
                I       Refspecs
                I       Remotes




                                         Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                               1,

Montag, 14. Juni 2010
More....



          I    Concepts
                I       Storage format
                I       Refspecs
                I       Remotes
          I    Cool features




                                         Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                               1,

Montag, 14. Juni 2010
More....



          I    Concepts
                I       Storage format
                I       Refspecs
                I       Remotes
          I    Cool features
                I       Bisect




                                         Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                               1,

Montag, 14. Juni 2010
More....



          I    Concepts
                I       Storage format
                I       Refspecs
                I       Remotes
          I    Cool features
                I       Bisect
                I       Notes




                                         Advanced Git I   Mayflower GmbH I Jun 1 2010 I
                                                                               1,

Montag, 14. Juni 2010
Thank you




                        Questions?


                                     © 2010 Mayflower GmbH

Montag, 14. Juni 2010

More Related Content

Featured

Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 

Featured (20)

Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 

Advanced Git

  • 1. Advanced Git David Soria Parra I 1 Jun 2010 | @dsp_ 1. © 2010 Mayflower GmbH Montag, 14. Juni 2010
  • 2. What I expect Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 3. What I expect I You already used Git Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 4. What I expect I You already used Git I You know how to commit Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 5. What I expect I You already used Git I You know how to commit I You know how to branch Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 6. What I expect I You already used Git I You know how to commit I You know how to branch I You know remotes Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 7. Motivation Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 8. Motivation I OSS Projects migrate: Zend Framework, phpBB, PHPUnit, ... Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 9. Motivation I OSS Projects migrate: Zend Framework, phpBB, PHPUnit, ... I Bigger projects have more complex workflows Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 10. Motivation I OSS Projects migrate: Zend Framework, phpBB, PHPUnit, ... I Bigger projects have more complex workflows I Git is at the beginning of the tech lifecycle Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 11. Beispiel developer Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 12. A typical work flow Edit Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 13. A typical work flow Edit Commit Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 14. A typical work flow Edit Commit Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 15. A typical work flow Edit Commit Publish Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 16. Feature Branch „Every feature on a branch“ Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 17. Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 18. Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 19. master Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 20. master Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 21. master Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 22. feature-x master Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 23. feature-x master Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 24. feature-x master DAG (Directed Acyclic Graph) Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 25. master feature-y git checkout feature-y git rebase master Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 26. master feature-y git checkout feature-y git rebase master Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 27. master feature-y git checkout feature-y git rebase master Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 28. master feature-y git checkout feature-y git rebase master Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 29. Branch and Rebase Commit Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 30. Branch and Rebase Commit Rebase Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 31. Branch and Rebase Commit Rebase Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 32. Branch and Rebase Commit Rebase Merge Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 33. Interactive Rebasing git rebase -i bf0225ae pick / rotate squash Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 34. Interactive Rebasing feature-y git rebase -i bf0225ae pick / rotate squash Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 35. Interactive Rebasing bf0255ae feature-y git rebase -i bf0225ae pick / rotate squash Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 36. Interactive Rebasing bf0255ae feature-y git rebase -i bf0225ae pick / rotate squash Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 37. Interactive Rebasing bf0255ae feature-y git rebase -i bf0225ae pick / rotate squash Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 38. Interactive Rebasing bf0255ae feature-y git rebase -i bf0225ae pick / rotate squash Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 39. „Never rebase branches that you pulled or pushed. Rebase local branches only!“ Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 40. Index Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 41. $ git status # On branch master # Changed but not updated: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: README.md # no changes added to commit (use "git add" and/or "git commit -a") $ git commit no changes added to commit (use "git add" and/or "git commit -a") Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 42. Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 43. working directory index repository Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 44. working directory index repository git add [file] Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 45. working directory index repository git add [file] git stage [file] Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 46. working directory index repository git add [file] git stage [file] git commit Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 47. working directory index repository git add [file] git stage [file] git commit git commit -a Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 48. static int run_builtin(struct cmd_st + int status, help; struct stat st; const char *prefix; prefix = NULL; help = argc == 2 && !strcmp(argv[1], if (!help) { if (p->option & RUN_SETUP) prefix = setup_git_directory(); + if (use_pager == -1 && p->option + use_pager = check_pager_c + if (use_pager == -1 && p->option + } use_pager = 1; Commit commit_pager_choice(); git add -p Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 49. static int run_builtin(struct cmd_st + int status, help; struct stat st; const char *prefix; prefix = NULL; help = argc == 2 && !strcmp(argv[1], if (!help) { if (p->option & RUN_SETUP) prefix = setup_git_directory(); + if (use_pager == -1 && p->option + use_pager = check_pager_c + if (use_pager == -1 && p->option + } use_pager = 1; Commit commit_pager_choice(); git add -p Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 50. New concepts New possibilities Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 51. Project Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 52. externe Module submodules Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 53. phpBB git init phpBB git submodule add git://..../zf2.git Zend Framework 2 Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 54. phpBB git.zendframework.com Zend Framework 2 git init phpBB git submodule add git://..../zf2.git Zend Framework 2 Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 55. phpBB Zend Framework 2 git.zendframework.com Symfony 2 git.github.com git clone git submodule init git submodule update Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 56. phpBB Zend Framework 2 git.zendframework.com Symfony 2 git.github.com git clone git submodule init git submodule update Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 57. phpBB Zend Framework 2 git.zendframework.com Symfony 2 git.github.com git clone git submodule init git submodule update Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 58. mr obvious says: Git is not subversion Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 59. system integration Administration Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 60. Windows Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 61. CRLF Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 62. CRLF I There is no svn:eol-style Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 63. CRLF I There is no svn:eol-style Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 64. CRLF I There is no svn:eol-style I Modifications but no commit possible? Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 65. CRLF I There is no svn:eol-style I Modifications but no commit possible? I git config core.autocrlf true Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 66. CRLF I There is no svn:eol-style I Modifications but no commit possible? I git config core.autocrlf true I git help config Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 67. FileMode Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 68. FileMode I Windows Share or FAT filesystem change your exec bit? Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 69. FileMode I Windows Share or FAT filesystem change your exec bit? I git config core.fileMode false to the rescue Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 70. Server Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 71. Server I No git daemon Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 72. Server I No git daemon I No symlinks (FAT filesystem) Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 73. Server I No git daemon I No symlinks (FAT filesystem) I git config core.symlinks true Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 74. Reflog Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 75. Reflog Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 76. Reflog I Your No 1. tool for recovery Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 77. Reflog I Your No 1. tool for recovery Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 78. Reflog I Your No 1. tool for recovery I learn it, it‘s IMPORTANT! Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 79. HEAD@{1} git checkout test git checkout master git branch -D test Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 80. HEAD@{1} git checkout test git checkout master git branch -D test Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 81. Git can be tricky... ...but it‘s simple once you understood it. Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 82. Summary Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 83. Summary I DAG and Rebase Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 84. Summary I DAG and Rebase I Index Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 85. Summary I DAG and Rebase I Index I Submodule Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 86. Summary I DAG and Rebase I Index I Submodule I Reflog Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 87. More.... Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 88. More.... I Concepts Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 89. More.... I Concepts I Storage format Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 90. More.... I Concepts I Storage format I Refspecs Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 91. More.... I Concepts I Storage format I Refspecs I Remotes Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 92. More.... I Concepts I Storage format I Refspecs I Remotes I Cool features Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 93. More.... I Concepts I Storage format I Refspecs I Remotes I Cool features I Bisect Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 94. More.... I Concepts I Storage format I Refspecs I Remotes I Cool features I Bisect I Notes Advanced Git I Mayflower GmbH I Jun 1 2010 I 1, Montag, 14. Juni 2010
  • 95. Thank you Questions? © 2010 Mayflower GmbH Montag, 14. Juni 2010