16
Don’t Let Git Get Your Goat! Practical ways to master Git and avoid common problems Steve Elsemore Sr. Software Engineer Tuesday, July 8, 2014

Don't Let Git Get Your Goat!

Embed Size (px)

DESCRIPTION

Practical ways to master Git and avoid common problems. A webinar presented by Steven Elsemore, CollabNet's Sr. Software Engineer.

Citation preview

Page 1: Don't Let Git Get Your Goat!

1 Copyright ©2014 CollabNet, Inc. All Rights Reserved.

Don’t Let Git Get Your Goat!Practical ways to master Git and avoid common problems

Steve ElsemoreSr. Software EngineerTuesday, July 8, 2014

Page 2: Don't Let Git Get Your Goat!

2 Copyright ©2014 CollabNet, Inc. All Rights Reserved.

Leader• ALM, SCM, cloud, agile• Enterprise agile experts- 17,000+ ScrumMasters trained

• Transformed 100s of largest, most respected IT orgs

Pioneer• Creator of Subversion (SVN), GitEye• Embrace Git – working on Gerrit project, extensive training & expertise especially in

enterprise deployments • CloudForge development platform for small projects,

enterprise workgroups• TeamForge enterprise ALM platform- SCM, Agile, DevOps

Proven Scale• 10,000+ customers, 6M+ users

Who is CollabNet?

Page 3: Don't Let Git Get Your Goat!

3 Copyright ©2014 CollabNet, Inc. All Rights Reserved.

Steve Elsemore

Steve Elsemore is a Sr. Software Engineer at CollabNet.

He works on Subclipse, GitEye and the CollabNet Desktop – Eclipse Edition.

About Our Presenter

Page 4: Don't Let Git Get Your Goat!

4 Copyright ©2014 CollabNet, Inc. All Rights Reserved.

• Git advantages/disadvantages

• Introduction to CollabNet GitEye

• GitEye demo and problem solving

• Questions and wrap up

Agenda (what you will learn today)

Page 5: Don't Let Git Get Your Goat!

5 Copyright ©2014 CollabNet, Inc. All Rights Reserved.

• Git is decentralized

•Work offline

• Branching and merging is fast and easy

• Data redundancy can be a good thing

• Gerrit

• There is great flexibility for establishing workflows

• Git adoption is growing

Why Git Is Great

Page 6: Don't Let Git Get Your Goat!

6 Copyright ©2014 CollabNet, Inc. All Rights Reserved.

• Git has a complex information model– Subversion

Files, working copy, repository, versions, branches, tags

– GitFiles, working directory, index, local repository, remote repository, remotes, commits, branches, stash . . .

• Git command line is complicated and inconsistent– “git pull” = “git fetch” + “git merge”– Question: “git branch” + “git checkout”= ?– Answer: “git checkout –b”

• It is too easy to make a serious mistake– git push origin fix:stable

Pushes local branch “fix” to remote branch “stable”

– git push origin fix :stablePushes local branch “fix” to remote branch “fix” and deletes remote branch “stable”

Why Git Can Get Your Goat

Page 7: Don't Let Git Get Your Goat!

7 Copyright ©2014 CollabNet, Inc. All Rights Reserved.

• Auditing and complianceHistory can be rewritten!

• Security controlRelies on native file system read/write access

• DecentralizedNo “golden” or “blessed” master repository

• Coexisting with SubversionNot all teams/projects use Git

• ComplexityEasy to make mistakes and cause harm!

The Challenges of Enterprise Git

Page 8: Don't Let Git Get Your Goat!

8 Copyright ©2014 CollabNet, Inc. All Rights Reserved.

• Auditing and compliance– History protection– Tamper-proof auditing– Full change rollback, even for History Rewrite (push –f)

• Security control– Role-based access control – Fine-grained permissions down to the branch level– Authentication and encryption

• Centralized repository management– Always a master repository!– Easy to create and clone Git repositories using TeamForge– Easy to synchronize with satellite repositories

• Coexisting with alternate SCM solutions– Git and Subversion repositories can run in parallel, even in the same project– Common management and security frameworks for Git and Subversion repositories

• Overcoming Git’s complexity– Powerful graphical user interface– Fully integrated with TeamForge’s ALM toolset

How CollabNet Makes Git Ready for the Enterprise

Page 9: Don't Let Git Get Your Goat!

9 Copyright ©2014 CollabNet, Inc. All Rights Reserved.

• GitEye is a free graphical Git client

• Visibility into the state of your workspace

• Understand your repository history

• No more command line!

Welcome to CollabNet GitEye

Page 10: Don't Let Git Get Your Goat!

10 Copyright ©2014 CollabNet, Inc. All Rights Reserved.

Command Linegit push origin fix:stable(Pushes local branch “fix” to remote branch “stable”)

vs.git push origin fix :stable(Pushes local branch “fix” to remote branch “fix” and deletes remote branch “stable”)

GitEye Helps You Avoid Mistakes

GitEye GUI

Page 11: Don't Let Git Get Your Goat!

11 Copyright ©2014 CollabNet, Inc. All Rights Reserved.

User Poll

Page 12: Don't Let Git Get Your Goat!

12 Copyright ©2014 CollabNet, Inc. All Rights Reserved.

GitEye Demo

Page 13: Don't Let Git Get Your Goat!

13 Copyright ©2014 CollabNet, Inc. All Rights Reserved.

• Performing Git tasks from GitEye is simple and intuitive.

• Gerrit requires 1 commit/change. For multiple commits that require review, amend the previous commit.

• If you forget to do the above, use interactive rebase to fix your commits. GitEye makes this easier.

• GitEye is tightly integrated with TeamForge and CloudForge,– http://www.collab.net/giteyeapp

• Take a Free Trial of CloudForge or TeamForge – www.cloudforge.com/pricing or www.collab.net/teamforge-free-trial

GitEye Demo Take Aways

Page 14: Don't Let Git Get Your Goat!

14 Copyright ©2014 CollabNet, Inc. All Rights Reserved.

User Poll

Page 15: Don't Let Git Get Your Goat!

15 Copyright ©2014 CollabNet, Inc. All Rights Reserved.

• Questions?

• List of how-to resources will be emailed

• Contact Steve Elsemore– [email protected]

Wrap up

Goodbye! Thanks for attending.

Page 16: Don't Let Git Get Your Goat!

16 Copyright ©2014 CollabNet, Inc. All Rights Reserved.

• GitEye Downloadhttp://www.collab.net/downloads/giteye

• BlogsGit and Agile Development with CloudForge and TeamForge

http://blogs.collab.net/uncategorized/git-agile-development-cloudforge

Linking TeamForge Commits and Artifactshttp://blogs.collab.net/subversion/linking-teamforge-commits-and-artifacts

TeamForge for Gerrit – Ready for the Enterprisehttp://blogs.collab.net/cloudforge/teamforge-for-gerrit-enterprise

GitEye and Interactive Rebasehttp://blogs.collab.net/cloudforge/giteye-and-interactive-rebase

Gerrit Dependency Management with GitEyehttp://blogs.collab.net/cloudforge/gerrit-dependency-management-with-giteye

Resources