What is Git and why is it worth the effort of learning it
Git, a valuable tool that every developer should have 💪🔥

You probably have heard about Git these last years, now it is such a standard in the development field, a very helpful tool that you must know and use on a daily basis as a software developer, but before you overwhelm, I have good news for you -dear reader- do not look at Git as a requirement to fulfill, instead look at it as one step ahead to get that dream job, in fact, Git is your ally, that no matter whether you are being asked to learn it or not, you will need it.

For a better understanding: When you develop software, no matter the kind of it, Winforms, web, mobile, IoT, and so on, over time you generate many versions of the software right? or maybe parallel versions because your manager asked you for updating a specific module, so you make the changes but not in the production environment but in the development one, that's very common, what is common as well is that the developer saves that versions of the code in folders, but this is not the right choice because you can get mad trying to keep everything up to date and in order when you want to merge one folder version with another, how do you do accomplish that mission? Huh, it's really hard to keep it working as you may imagine.

At this point we have to make clear something: The solution described in the last paragraph is valid, but it's not the most efficient nor practical, but here we are to make our lives more simpler and efficient isn't it? Well, the technology that solves that issue exists, and its name is Git, a version control software, it was developed by Linus Torvalds, the Linux creator.

Practice makes the master

Git comes to rescue us

Se trata de un programa de consola que hace uso de un lenguaje particular al cual también podemos llamar comandos GIT, este programa una vez instalado en nuestro ordenador nos habilita la posibilidad de usar una especie de "administrador de archivos con superpoderes" sí, leíste bien, es como el administrador de archivos de Windows pero manejado por consola (aunque hay programas de terceros que lo hacen más gráfico) y que permite hacer múltiples copias de las carpetas que nosotros le indiquemos, guardar el estado de sus subcarpetas y sus archivos en un momento dado de tiempo, es decir es como tomar una fotografía a nuestra carpeta con todo su contenido, y podemos tomar varias de esas "fotografías de tiempo", ver el listado histórico de ellas, y si en algún momento hemos cometido un error, borramos algo y el sistema se crashea: podemos regresar a una "fotografía" o para llamarlo de forma más técnica: un "commit" que sí funcione y listo. Nos permite unir trozos de código de varios miembros de un equipo de desarrollo: operación llamada "merge" y evitar los copy/paste engorrosos y peligrosos.

This is a console software, a command-line interface, that once it's installed in our computer it gives us the commands which allow us to manage our development projects files and save the versions that we want through commits, create parallel versions through branches, and more. It is like a file management system with superpowers. So, for example, if you create a commit, this is like a snapshot of your code, and if you break your project you can get rid of these unwanted changes and roll back to your previous version, this is an awesome feature for developers.

Windows folder which has been applied Git

Finally, we can have everything on our computer or in the cloud for future downloads on other computers, or work simultaneously in a team environment.

So now that you have a better understanding of Git the next step is to learn the git command while you practice, for this purpose I created this post that has a Git cheatsheet 😉 so learn it from now If you didn't and keep your skills up-to-date.

Here's the official Git web: https://git-scm.com/ download the client and start learning through practice.

If you liked this post, share it and spread the knowledge 😊

Leave a Reply

Your email address will not be published. Required fields are marked *