I'm working with teams to become more familiar with Git. We're a Micrsoft shop and used TFS exclusively up until a few years ago.
One of the challenges faced is how to get familiar with using Git. That's a huge hurdle I keep hearing. "Figure out the work AND how to use Git... maybe later".
Well, I didn't like that. I find Git helpful in a lot of ways, especially around making micro-commits. To help teams improve their technical capabilities with Git (huh, almost like I'm a Tech Coach or something) I've developed a Kata around Git.
All of my Katas use FizzBuzz and TDD. While FizzBuzz isn't REQUIRED for this one, it's an expectation from the teams I do Katas with. TDD isn't REQUIRED... but it's definitely part of the instructions... so... required.
This kata starts my "Git Katas" repo. I hope to add more over time around branching, merge issues, merging branches... whatever. First though, need to start using Git.
That's really all there is. The readme is hopefully enough to get started.
As an Added Bonus - This Kata serves double duty. I originally developed it from memory using the Git Command Line.
Most of the teams aren't comfortable on the command line and use TFS exclusively through Visual Studio. To help the transition for these teams be easier there is an instruction set for the kata through Visual Studio. Screenshots and all... Ooooooo.
The last thing I've got going on with teams is for them to use Git locally. If you run git init
it initializes a git repo... shocking, I know. This will enable the team to use Git locally for the actual work their doing. And then use the server source control when they're ready to do so, just like a regular workflow. The difference is that once they get comfortable with Git commands, switching the 'server' source control won't affect their day-to-day tasks. It will also highlight issues using Git in a way that's not going to be a blocking issue if there's something that needs to be accomplished 'NOW'. While I'm a big fan of diving into the deep end; that's not everyone. This shallow end technique provides an easier path towards using the tool.
That's all. Just wanted to share a technique I'm using for teams to be able to use Git more effectively.