Collaboration With Git and GitHub

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    3 Favorites

    Collaboration With Git and GitHub - Presentation Transcript

    1. Open Source Collaboration with Git and GitHub Alec Clews
    2. Credit
      • Based on presentation by Nick Quaranto http://xrl.us/benbdq
    3.  
    4. History
    5. I'm an egoistical bastard, and I name all my projects after myself. First Linux, now git. -Linus Torvalds
    6. History
      • BitKeeper debacle
      • Design Goals:
        • CVS as an example of what not to do
        • Distributed workflow
        • Strong safeguards against corruption
        • Very high performance
      • In development since 2005
    7.  
    8. And Now
    9. 1. Fast
    10. Local 2. Local
    11. The Staging Area
    12. Distributed 3. Distributed
    13. Local vs. Remote
    14. 4. Cheap Branching
    15. Branching
    16. Any Workflow 6.Many Workflows
    17. Centralized
    18. Integration Manager
    19. Benevolent Dictator
    20. Failboat. It’s not perfect.
    21. The downsides
      • Complexity
      • Windows FTL
      • What's an IDE? (but see egit for Eclipse, plus Vim and Emacs support, and GUIs)‏
      • Still frequent releases
        • Cygwin – build yourself
        • Ubuntu – use Git PPA
    22.  
    23.  
    24. Now with git goodness as well
    25.  
    26.  
    27.  
    28.  
    29. How to Contribute
      • Fork a repository at GitHub
      • Clone and connect your local repository
      • Write tests, implement functionality
      • Commit your local changes
      • Push your changes to your fork
      • Make a pull request
      • Profit!!
    30. Demo
    31. Hints and Tips
      • Source git completions file via .bashrc to use git auto complete and branch name in prompt (kudos to Toby)
      • Set a global .gitignore file
      • git config --global merge.exludesfiles ~/.gitignore
      • Define a couple of global aliases for checkout and branch
    32. Hints and Tips contd
      • Use ‘ git update-index --stdin ’ as part of a pipe to add a lot files or filter files names (c.f. git add )
      • Override global settings (e.g. email) in .git/config
      • Use ‘ git commit --allow-empty ’ to perform empty commit (rare corner case)
    33. Example custom merge driver
      • Define a new merge driver in .git/config
      • Define file patterns that use new merge driver
      • See gitattributes(5)
    34. custom merge driver contd
      • In .git/config
      • [merge "overwrite"]
      • name = overwrite using cp
      • driver = cp %B %A
      • #recursive = defaults to driver
    35. custom merge driver contd
      • In .git/info/attributes
        • NB No space around ‘=‘
      • * merge=overwrite
    36. git log
      • http://git-scm.com
      • http://whygitisbetterthanx.com
      • http://delicious.com/alecclews/git

    + Alec ClewsAlec Clews, 7 months ago

    custom

    583 views, 3 favs, 0 embeds more stats

    Presentation to Open Source Developers Club Mlebour more

    More info about this document

    CC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike License

    Go to text version

    • Total Views 583
      • 583 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 3
    • Downloads 14
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories