getting to know git

32
Chicago, October 19 - 22, 2010 Getting to know Git Colin Harrington – Object Partners

Upload: colin-harrington

Post on 21-Jan-2015

1.533 views

Category:

Technology


1 download

DESCRIPTION

Git is known as 'the fast version control system' and has gained much popularity in the last couple years for good reason. Grails itself has moved to Git and is now hosted on github - http://github.com/grails. In this session at SpringOne2gx we spent time getting to know some of the basics of Git and exploring successful tools and workflows. We will also learn how we can utilize git and git-svn to work with grails.

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.