Version control is a system that records changes to a file or set of
files over time so that you can recall specific versions later.
Version control systems are two types:
1. Centralized version control system
2. Distributed version control system
Centralized Version Control Systems
CVCS have a single server that contains all the versioned files, and a number of clients that check out files from that central place. For many years, this has been the standard for version control.
If you are a software developer or web designer and want to keep every version
of a file or layout (which you would most certainly want to), a
Version Control System (VCS) is a very wise thing to use.
It allows you to revert selected files back to a previous state, revert
the entire project back to a previous state, compare changes over time,
see who last modified something that might be causing a problem, who
introduced an issue and when, and more.
Using a VCS also generally means that if you screw things up or lose
files, you can easily recover.
In addition, you get all this for very little overhead.
Version control systems are two types:
1. Centralized version control system
2. Distributed version control system
Centralized Version Control Systems
CVCS have a single server that contains all the versioned files, and a number of clients that check out files from that central place. For many years, this has been the standard for version control.
The most obvious is the single point of failure that the centralized
server represents.
If that server goes down for an hour, then during that hour nobody can
collaborate at all or save versioned changes to anything they’re working
on.
If the hard disk the central database is on becomes corrupted, and
proper backups haven’t been kept, you lose absolutely everything — the
entire history of the project except whatever single snapshots people
happen to have on their local machines.
Distributed Version Control Systems
Git is a popular distributed version control system. In Git, developers don’t just check out the latest snapshot of the files; rather,
they fully mirror the repository, including its full history.
Thus, if any server dies, and these systems were collaborating via that
server, any of the client repositories can be copied back up to the
server to restore it.
Every clone is really a full backup of all the data.
developers clone the remote repo into local machine which is called
local repo. When they clone in local machine, all history is copied into
local repo. After making code changes, when they commit the code, it
goes into local repo with new version. Then they can push code changes
into remote repo where it is available to others. Client and remote
server will have full repository.
Click here to learn how Git is different that traditional version control systems?
No comments:
Post a Comment