What has nature got to do with this? Well, everything is connected Abhijeet, said God in his deep baritone. (I always thought God would have a voice like Morgan Freeman or James Earl Jones). Anyway, like sparrows go out to collect their food, come back to their nest, each one of the inhabitants contributing their share. To do what, make a dish? No look at the beauty. Collaboration, team work. The nest is just a place where they all meet.

What is Git?
As per Wikipedia, Git is a distributed version control system for tracking changes in source code during software development. It is designed for coordinating work among programmers, but it can be used to track changes in any set of files.
Basically, “storing and sharing multiple versions of code files”. There will be many people working on developing a product (software is just one example). In a collaborative environment, every person in the team should be aware of the progress so that one can contribute to the smooth and timely delivery. Git is the way we track and take care of the contributions or changes made to the file by any member of the team. (Provided they adhere to the protocol, you know what I mean). Git is a distributed version control system, what exactly is this?
Distributed version control systems do not necessarily rely on a central server to store all the versions of a project’s files. Instead, every developer “clones” a copy of a repository and has the full history of the project on their own hard drive. This copy (or “clone”) has all of the metadata of the original.
The disadvantage surface when there are a large amounts of change-sets, but there are workaround
Downloading and installing Git is also very simple and easy.
Why it is important?
Any Production system needs to be under version control, that’s the foundation. As I said earlier, there will be a team Any Production system needs to be under version control, that’s the foundation. As I said earlier, there will be a team who would be working on the product and of course, the team has so many members. When the entire team is working on the development project, it is difficult to keep track of who is responsible for what piece of code and what changes have been made at various instances in time. Also, how to collect all the pieces to make it deployment ready. Then what we do to remedy this?
“The Answer, my friend is blowing in the wind” not exactly in the wind, but the in the cloud in the form of version control systems which allows us to:
- share code, allowing multiple people/teams to access pieces of code, at the same time.
- manage and protect the code generated.
- Version each piece of code, so a history of changes can be kept.
GitHub
Github is the most popular development platform, it’s a great place to host, store and collaborate, with your code.
One needs to configure with their credentials and they are set to use. It is free.
Every commit refers to a particular section of the code in the system.
Diff (commands ) shows us which code was added in the commit.
You need to know how to pull request to see some of the jobs and this is very important. Particularly in case of deployment and development system. There are other application as well.
Repository and Monorepos:
What is repository anyway, it is that place where you hide things, maybe secret things? Repositories are basically storage where keep all the files. In a Versioning system, you typically keep all the files related to your development project so that you can keep track of the changes and the history, manage and discuss your project. With GitHub pages nowadays it has become even better.
Monorepos:
Well, it is at your call whether to keep the api and the model file in the same repo or create two separate repos for it. Monorepo is the repo where all the files are kept in one repo when you can do better by separating repos for different parts of your projects.