Version Control Systems
- Version control system is a software which
- allows to collaborate work among the users to push their changes and get the changes done by others.

- Tracks changes to files over time so that we can revert(rewind) to any past version adn also audit who changed what.
- allows to collaborate work among the users to push their changes and get the changes done by others.
-
Types of Version Control Systems
- Local: (Rare) history and repo is maintained and used from a same machine.
- Centralized: One centralized server(s) where clients push and pull changes.
- Single source of truth (whole repo) on a server Client syncs with it.
- Client Software is different from server software.
- Server outage: team blocked
- history lives centrally.
- Examples: Subversion (svn), Clear case, TFVC
- Distributed: Every one has a full history and any one can act as a server.
- Each clone has a full repo (history + metadata + code)
- Work is local first then shared
- Any one can act as a server
- Every one will have same software installed
- Examples:
- Git
- Mercurial
- Git is de-facto standard today.
Git
- Wikipedia Git
- Developed by Linus Torvalds and is a free open source project.
-
The core working of Git is all about understanding 5 areas of git.
-
Core concepts:
- Repository: This a storage space with versioning
