Download ppt - Getting To Know Git

Transcript
Page 1: Getting To Know Git

Chicago, October 19 - 22, 2010

Getting to know Git

Colin Harrington – Object Partners

Page 2: Getting To Know Git

SpringOne 2GX 2010. All rights reserved. Do not distribute without permission.

whoami

Colin Harrington

Senior Consultant

@ColinHarrington

[email protected]

[email protected]

Page 3: Getting To Know Git

What is Git?

Git is a free & open source, distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

Every Git clone is a full-fledged repository with complete history and full revision tracking capabilities, not dependent on network access or a central server. Branching and merging are fast and easy to do.

– http://git-scm.com/

SpringOne 2GX 2010. All rights reserved. Do not distribute without permission.

Page 4: Getting To Know Git

Why Git?

SpringOne 2GX 2010. All rights reserved. Do not distribute without permission.

Page 5: Getting To Know Git

Why Git?

http://github.com/grails/

SpringOne 2GX 2010. All rights reserved. Do not distribute without permission.

Page 6: Getting To Know Git

Git != SVN

SpringOne 2GX 2010. All rights reserved. Do not distribute without permission.

Page 7: Getting To Know Git

Centralized VCS

SpringOne 2GX 2010. All rights reserved. Do not distribute without permission.

Page 8: Getting To Know Git

Decentralized / Distributed VCS

SpringOne 2GX 2010. All rights reserved. Do not distribute without permission.

Page 9: Getting To Know Git

Git – SVN Crash Course

http://git-scm.com/course/svn.html

SpringOne 2GX 2010. All rights reserved. Do not distribute without permission.

Page 10: Getting To Know Git

Mind << git basics

start brand new repository:git init

clone an existing repository:git clone <git-url>

SpringOne 2GX 2010. All rights reserved. Do not distribute without permission.

Page 11: Getting To Know Git

SpringOne 2GX 2010. All rights reserved. Do not distribute without permission.

Demo

Page 12: Getting To Know Git

Mind << git basics

git init

git add .

git commit

git init

git add .

git commit

SpringOne 2GX 2010. All rights reserved. Do not distribute without permission.

Page 13: Getting To Know Git

Mind << git fundamentals

`

SpringOne 2GX 2010. All rights reserved. Do not distribute without permission.

Page 14: Getting To Know Git

Mind << git fundamentals

SpringOne 2GX 2010. All rights reserved. Do not distribute without permission.

Page 15: Getting To Know Git

Mind << git fundamentals

SHA hashes

Authorship preservation

Tree Structure!

SpringOne 2GX 2010. All rights reserved. Do not distribute without permission.

Page 16: Getting To Know Git

Mind << git fundamentals

http://book.git-scm.com/1_the_git_object_model.html

SpringOne 2GX 2010. All rights reserved. Do not distribute without permission.

Page 17: Getting To Know Git

Porcelain vs Plumbing

SpringOne 2GX 2010. All rights reserved. Do not distribute without permission.

Page 18: Getting To Know Git

Porcelain vs Plumbing

initlogrebasemergecommitaddcheckoutrevertpack

pullpush

statusbisectclonediffgreptag

branch

SpringOne 2GX 2010. All rights reserved. Do not distribute without permission.

Page 19: Getting To Know Git

Mind << branch

git branch

git branch -a

git checkout -b <branchName>

git checkout <existingBranchName>

SpringOne 2GX 2010. All rights reserved. Do not distribute without permission.

Page 20: Getting To Know Git

Mind << merge

git merge <branch>

git merge <branch> --no-commit

SpringOne 2GX 2010. All rights reserved. Do not distribute without permission.

Page 21: Getting To Know Git

Mind << clone

git clone <url>

Similar to svn checkoutClones the entire repository!

Adds a remote

SpringOne 2GX 2010. All rights reserved. Do not distribute without permission.

Page 22: Getting To Know Git

Mind << remotes

git branch -r

git branch --track <branch> <remote-branch>

git branch -r -d <remote-branch>

SpringOne 2GX 2010. All rights reserved. Do not distribute without permission.

Page 23: Getting To Know Git

Mind << working with remotes

Index

LocalRepository

RemoteRepository

Push

Pull

Files on drive

SpringOne 2GX 2010. All rights reserved. Do not distribute without permission.

Page 24: Getting To Know Git

SpringOne 2GX 2010. All rights reserved. Do not distribute without permission.

Demo

Page 25: Getting To Know Git

Mind << git-svn

clone an entire SVN repository!

git svn clone -s <url>

git svn clone -s -r 1234 <url>

… without -s, etc.

SpringOne 2GX 2010. All rights reserved. Do not distribute without permission.

Page 26: Getting To Know Git

Mind << git-svn

git svn rebase→ rebases the current branch on the remote-tracked

svn branch (trunk or branches)

git svn fetch→ fetches changes from svn

Checkout a remote branchKeep the original branches clean!!

Stash, rebase, dcommit, and do it again!SpringOne 2GX 2010. All rights reserved. Do not distribute without permission.

Page 27: Getting To Know Git

Give Back to Grails

http://grails.org/contribute

http://grails.org/Creating+Patches+From+Git

http://grails.org/GitHub+Forking+and+Pull+Requests

http://jira.codehaus.org/browse/GRAILS

Page 28: Getting To Know Git

SpringOne 2GX 2010. All rights reserved. Do not distribute without permission.

Demo

Page 29: Getting To Know Git

Resources

http://www.sourcemage.org/Git_Guide

http://git.or.cz/course/svn.html

http://www.youtube.com/watch?v=4XpnKHJAok8

http://www.kernel.org/pub/software/scm/git/docs/user-manual.html

http://www.kernel.org/pub/software/scm/git/docs/everyday.html

http://book.git-scm.com/

http://whygitisbetterthanx.com/

http://cheat.errtheblog.com/s/git

http://progit.org/book/

http://refcardz.dzone.com/refcardz/getting-started-git

http://bit.ly/avGDTz

… many more valuable resources out there!

SpringOne 2GX 2010. All rights reserved. Do not distribute without permission.

Page 30: Getting To Know Git

SpringOne 2GX 2010. All rights reserved. Do not distribute without permission.

Q&A

Page 31: Getting To Know Git

SpringOne 2GX 2010. All rights reserved. Do not distribute without permission.

Thank you!

Page 32: Getting To Know Git

Credits

Git logo :: by azizash :: http://azizash.deviantart.com/art/GIT-Logo-95183398

Grails logo :: http://grails.org/Brand

Perl logo :: Criado por O'Reilly :: http://commons.wikimedia.org/wiki/File:Perl.jpg

VLC logo :: illustration (and iteration) by Richard C. G. Øiestad. GNU GPL by Video LAN

Rails logo :: KSEltar :: http://commons.wikimedia.org/wiki/File:Ruby_on_Rails_logo.svg

jQuery logo :: http://commons.wikimedia.org/wiki/File:Logo_jquery_215x53.gif

Linux logo :: gg3po (kde-look.org source) :: http://commons.wikimedia.org/wiki/File:NewTux.svg

Eclipse logo :: http://www.eclipse.org/artwork/

Android logo :: Google and Android's developpers :: http://commons.wikimedia.org/wiki/File:Android_robot.svg

SpringOne 2GX 2010. All rights reserved. Do not distribute without permission.


Recommended