Hello 👋 and welcome, I’m undergoing a refinery process with The Startup Intern. During this process, I’ll be provided with study resources and tasks that will help solidify my learning. On successful completion of this process, I’ll be assigned to an organization as a backend developer intern. Kindly check out The Startup Intern on their website or on Twitter to know more about them and what they do. 🤝
This article is based on task 3 and here is my previous article.
Back To The Topic
Collaboration and contribution to projects are day to day activities of every programmer/software developer, it is the job. Every developer working in a team is assigned some issues/features that will make up a cool software application and are expected to solve problems, keep code versions/history, receive and share features from and to other developers.
This process of collaboration and contribution if done with the use of a floppy disk/USB hard drive does not guarantee data integrity and may result in conflicts (of code and developers) which in turn slow down development, hence the need for an efficient version control system.
Git! a solution 💡
But first, what is version control?
Version control is a way programmers track changes to development. It is the management of changes to documents, computer programs, large websites, and other collections of information. It is an essential skill that every software developer/programmer must learn.
Ok, now what is Git?
Git is a free and open source widely used version control system with a nice workflow that ensures everyone on the team works and collaborates on the same project without causing any error. It is a tool that tracks the changes in code/project. Git offers speed, efficiency, and data integrity of software development.
Open source control allows multiple devs. to work on a project from a different location. e.g. google docs allow different people to collaborate on a file.
GitHub is a website where all git repository is hosted, it is a free hosting platform for version control and collaboration. Local repositories through some efficient workflow (with Git) are uploaded to the remote repository (GitHub). Being online makes it easier to collaborate with other programmers from anywhere and also to organize projects into portfolios to show to potential employers.
Repository is a collection of various version of different files of a project.
It is important to note Git is not GitHub. In Simple terms, Git is a version control system that lets you manage and keep track of your source code history while GitHub is a cloud-based hosting service that lets you manage Git repositories.
Getting started with Git and GitHub, I used the video tutorials provided as a resource for me as a guide. Git also provides an official documentation, Likewise GitHub which the documentation can be found here.
Essentials of Git 📕
The essentials of Git are the necessary terms and commands every developer must know to get them going. They are pretty much the basic commands that are used when starting a project from scratch or to make contributions to an existing project.
Other essentials are; resetting staging and commit, deleting changes, checking change differences, stashing, rebasing, resolving merging conflicts, and more. Git provides an how to official documentation of all its command, also I found a cheat sheet for the essential commands here. Learning Git is also a great way to learn the command line.
Git Workflow 👨💻
The workflow steps are a recipe for how to use Git to accomplish work in a consistent and productive manner. It is a branch-based recommendation that encourages developers to leverage Git effectively. As a developer, this is what you will do in your development environment every day.
The recipe includes:
Challenges While learning 😞
I struggled with understanding rebase, it took me the time to go over and over the resources before I could understand it. With more practice as I go, it will become part of me.
What Next? 🚀
I look forward to the next task. Hopefully, it will involve me contributing to an existing repository or maybe I create one from scratch.
I hope this is not too much of a long read, thank you for following.
PS: The images used in this article are not mine, I got them from google image.