Transcript
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


Recommended