The confusing world of Version Control

Version control is something I have always found difficult, mainly because I love coding and hate dealing with all the surrounding excess. Ultimately as a developer you can’t avoid it. However I haven’t ever been taught how to use Git properly. Something I should really sit down some day and play about with. In the first years of University there is never a demand to have knowledge of Git as the projects simply aren’t advanced enough to require a great depth of Git knowledge other than commit and push. So I thought I would do an overview of version control and my thoughts on it.
Some of the things I have learned about version control is committing early and often. Making small incremental changes is much more manageable than committing large chunks of code which could break the system you are developing. This is closely tied with having good commit messages. Having good commit messages are important as it outlines what was changed which allows future developers to understand easily the changes. Therefore having a large commit with a vague, non-descriptive commit message can become really difficult.
However one thing I don’t understand is the generic error message Git gives you. They can be confusing as they don’t give you any real direction as to where the problem lies. This has led to me simply googling the error and typing in the first answer to the Stack Overflow question. Which can lead you down a rabbit hole where you end up creating more problems than the one created.
The vast amount of Git commands out there can be daunting to think about. Git pull, fetch, push, upstream, --lah. It can become quickly overwhelming and difficult to understand. However tools like GitKraken, Git bash and Git GUI do make the process more manageable and easier to understand. I particularly like using Git Kraken’s UI as it provides a great visualisation as to what is going on. Despite this, I feel like a child whilst using it and that I am not really properly using Git. Most of my experience with Git has been through Android Studio’s git features and Git Kraken. I have never felt comfortable using the command line interfaces and perhaps that’s just a preference of interface.
So I managed to find a funny website which gives some help to common git problems. It also describes perfectly some of the feelings I have had whilst using Git.
Git is hard: screwing up is easy, and figuring out how to fix your mistakes is fucking impossible. Git documentation has this chicken and egg problem where you can't search for how to get yourself out of a mess, unless you already know the name of the thing you need to know about in order to fix your problem
https://ohshitgit.com/
To conclude I just wanted to give a quick opinion on some of the difficulties a starting developer has felt with trying to use Git. Looking towards the future I will play about with Git on my own, so I can feel confident in using the versioning software. 

Comments