• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Distributed Developer Workflows using Git
 

Distributed Developer Workflows using Git

on

  • 2,689 views

This meetup I will be walking the audience through how to setup, configure and maintain distributed development workflows using Git (the distributed VCS developers either love or hate). Much of the ...

This meetup I will be walking the audience through how to setup, configure and maintain distributed development workflows using Git (the distributed VCS developers either love or hate). Much of the workflows suggested here will be applicable to other dVCSes like Mercurial, Darcs and Bazaar.

Statistics

Views

Total Views
2,689
Views on SlideShare
2,683
Embed Views
6

Actions

Likes
1
Downloads
19
Comments
1

3 Embeds 6

http://twitter.com 2
http://www.linkedin.com 2
https://www.linkedin.com 2

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

11 of 1 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Distributed Developer Workflows using Git Distributed Developer Workflows using Git Presentation Transcript

    • Creating distributed development workflows using Git Susan Potter Champaign-Urbana Developer’s Meetup August 8, 2011
    • Scope of Talk • How does Git differ. . . ? CVS, Subversion, Perforce, Mercurial
    • Scope of Talk • How does Git differ. . . ? CVS, Subversion, Perforce, Mercurial • Gitting Started Locally Server configuration management
    • Scope of Talk • How does Git differ. . . ? CVS, Subversion, Perforce, Mercurial • Gitting Started Locally Server configuration management • Centralized Remote (a.k.a. a better Subversion)
    • Scope of Talk • How does Git differ. . . ? • Forking Workflows CVS, Subversion, Perforce, Mercurial (the GitHub model) • Gitting Started Locally Server configuration management • Centralized Remote (a.k.a. a better Subversion)
    • Scope of Talk • How does Git differ. . . ? • Forking Workflows CVS, Subversion, Perforce, Mercurial (the GitHub model) • Gitting Started Locally • Gatekeeper Workflows Server configuration management (enterprise release management) • Centralized Remote (a.k.a. a better Subversion)
    • Scope of Talk • How does Git differ. . . ? • Forking Workflows CVS, Subversion, Perforce, Mercurial (the GitHub model) • Gitting Started Locally • Gatekeeper Workflows Server configuration management (enterprise release management) • Centralized Remote • Deployment Strategies? (a.k.a. a better Subversion) (scalable distributed deployment)
    • VCS Dimensions Delta DAG Local RCS cp -r or hard links Centralized CVS, Subversion, Perforce ? Distributed Mercurial, Darcs Git, Bazaar
    • Gitting Started Locally (1/4) Initializing local repo inside working directory
    • Gitting Started Locally (1/4) Initializing local repo inside working directory • git init
    • Gitting Started Locally (1/4) Initializing local repo inside working directory • git init • git config user.email “user@domain”
    • Gitting Started Locally (1/4) Initializing local repo inside working directory • git init • git config user.email “user@domain” • git config user.name “Your Name”
    • Gitting Started Locally (2/4) $GIT_DIR => .git/
    • Gitting Started Locally (2/4) $GIT_DIR => .git/ • branches
    • Gitting Started Locally (2/4) $GIT_DIR => .git/ • branches • hooks
    • Gitting Started Locally (2/4) $GIT_DIR => .git/ • branches • hooks • objects
    • Gitting Started Locally (2/4) $GIT_DIR => .git/ • branches • hooks • objects • refs
    • Gitting Started Locally (2/4) $GIT_DIR => .git/ • branches • hooks • objects • refs • config & info
    • Gitting Started Locally (3/4) $GIT_INDEX => .git/index
    • Gitting Started Locally (3/4) $GIT_INDEX => .git/index • staging area
    • Gitting Started Locally (3/4) $GIT_INDEX => .git/index • staging area • add files before commit
    • Gitting Started Locally (3/4) $GIT_INDEX => .git/index • staging area • add files before commit • can even add “patches”
    • Gitting Started Locally (4/4) DEMO
    • Centralized Workflow (1/3) Adding a remote
    • Centralized Workflow (1/3) Adding a remote • git init bare Create remote “bare” repo
    • Centralized Workflow (1/3) Adding a remote • git init bare Create remote “bare” repo • Setup server authN/authZ e.g. $HOME/.ssh/authorized_keys, PAM, LDAP, etc.
    • Centralized Workflow (1/3) Adding a remote • git init bare Create remote “bare” repo • Setup server authN/authZ e.g. $HOME/.ssh/authorized_keys, PAM, LDAP, etc. • git remote add <name> <URL> Add remote to local repository
    • Centralized Workflow (2/3) Sharing to remote
    • Centralized Workflow (2/3) Sharing to remote • git pull <remove> <branch> Pull from <remote> <branch>
    • Centralized Workflow (2/3) Sharing to remote • git pull <remove> <branch> Pull from <remote> <branch> • git push <remote> <branch> Push to <remote> <branch>
    • Centralized Workflow (3/3) DEMO (with branching)
    • Forking Workflow (1/2) Forking remote repository. . .
    • Forking Workflow (1/2) Forking remote repository. . . • cp -r <orig.repo> <forked.repo> Basically just a straight copy is necessary
    • Forking Workflow (2/2) DEMO
    • Gatekeeper Workflow (1/2) Gatekeeper remote repository. . .
    • Gatekeeper Workflow (1/2) Gatekeeper remote repository. . . • git init bare Basically just create a bare Git repo and let gatekeeper curate and selectively push
    • Gatekeeper Workflow (2/2) DEMO
    • Deployment Workflows (1/2) Distributed systems deployment could bundle rollback with new release. . .
    • Deployment Workflows (1/2) Distributed systems deployment could bundle rollback with new release. . . • git bundle create <file.bundle> <branches,tags,etc> Creating a bundle with those branches, tags and/or commit range
    • Deployment Workflows (1/2) Distributed systems deployment could bundle rollback with new release. . . • git bundle create <file.bundle> <branches,tags,etc> Creating a bundle with those branches, tags and/or commit range • git bundle verify <file.bundle> Verify bundle is valid and will apply cleanly to deployed repository
    • Deployment Workflows (1/2) Distributed systems deployment could bundle rollback with new release. . . • git bundle create <file.bundle> <branches,tags,etc> Creating a bundle with those branches, tags and/or commit range • git bundle verify <file.bundle> Verify bundle is valid and will apply cleanly to deployed repository • git bundle unbundle <file.bundle> Unbundling subset of repository on deployment node
    • Deployment Workflows (2/2) DEMO
    • Resources (1/2) • http://git-scm.org • http://github.com • Pro Git by Scott Chacon
    • Questions? Figure: http://www.flickr.com/photos/42682395@N04/
    • Questions? Figure: http://www.flickr.com/photos/42682395@N04/ @SusanPotter