I’ll preface this with a story.
I am in my late 30s and haven’t been in this game very long; professionally ~3 years, and another 2-3 years of structured studies prior to that - I am technically not self taught, though I pushed myself very hard beyond the qualification structure to get ready for a new career.
My previous career plateaued, hence the reason I dropped everything in my 30s and started over.
I was made aware of Source Control very early in the piece, but with the learning curve of trying to learn Java and C# concurrently, learning the Git syntax at the same time was put into my too hard basket temporarily.
The first modules of study focused on fundamentals within .NET using C#, and naturally the IDE used was Visual Studio. That’s where I got my first taste of Source Control.
The end of my old copy/paste code preservation tactics
I learned what the terms push, pull, fetch and merge meant (among many others) and set about using my old Microsoft Dream Spark benefits (now Azure Imagine) to spin up my first private source control repository for my projects using Visual Studio Online Team Services (now Azure DevOps) - overkill for sure, but all well fit for purpose.
Everything was going swimmingly barring the inevitable mistakes - mitigated by this new (to me) thing called Source Control, and I quickly fell in love with how my development throughput improved with the confidence of beginning to understand how much control I had over my code.
Then a tutor said “Great, but have you seen SourceTree?”
Well have ya, punk?
I’d never heard of SourceTree or Atlassian before, but my world was about to change. I’m a visual and kinesthetic learner, and being able to visualise a concept assists me greatly in understanding that particular concept.
Seeing the structure of all of the branches, when and where they merged, the differences between them, and having the ability to switch between different versions of the code base on the fly was eye opening, and something I’d never experienced before.
This is where my deeper understanding of Git began to manifest
I began to look into the MinGW bash Terminal within SourceTree, as well as the Atlassian documentation on the same topic to get an understanding of the underlying CLI and how everything fit together.
I ensured that I could invoke any of the repository manipulation tasks that I was doing with the GUI, within the CLI.
I even began to push the use of Git onto my class-mates.
Exploring more advanced concepts like Cherry Picking and Managing of Merge Conflicts became trivial within the SourceTree GUI.
What a damned cool tool!
I’m obsessed with SourceTree
I’m a huge fan of using the right tool for the job, and I firmly believe that SourceTree is the single best GUI based Git repository manipulation tool available on the market. While I am confortable with the Git CLI, it’s certainly not my main interface to Source Control; that honour has been firmly taken by SourceTree - and I’ve made my entire company aware of how damned good the tool is.
Header image copyright Atlassian.