What is Git?
What is Git?
Git is a distributed version control system. The distributed version control system refers to the concept that a copy of the project files will be maintained at the client’s system along with the copy being maintained at the remote server. This means that the developer’s machine will also maintain a copy of backup files in addition to the repository maintained on the server.
- Each user has a local copy of the complete history of the project which is known as a ‘repository’ or a ‘repo’. A repository consists of a collection of source code files.
- Using git, users can synchronize repositories.
For example, if we are working on a project there will be different types of developers i.e. backend developer, UI developer, and database developer. Now backend developer started working on the project by writing the code on his own laptop. Similarly, everybody starts writing the code in their local machines. In the end, we finally need the entire code together, so we have to combine the code in one place. So finally if any developer wants to make modifications to the source code they pull up the code from the central place, then make modifications and finally push it back. This is how the source code is managed and this technique is termed as source code management. A popular source code management tool used by the developers is Github. Also whenever the developers are making modifications in the source code, the modifications would be tracked and history would be maintained. For instance, if the UI developer made changes to the source code and pushed the changes on the remote server so the version control system i.e. git will maintain a version id for this change and also maintains who made the change. And after that, the database developer made changes so the version control system again maintains a version Id and a record of all the previous changes. Hence, Git could also be referred to as a content tracker.
BitBucket is a web-based version control repository. The above snapshot shows how bitbucket maintains the record of various commits made to a project.