KEMBAR78
Unit 3.1 - Git Notes | PDF | Version Control | System Software
0% found this document useful (0 votes)
3 views6 pages

Unit 3.1 - Git Notes

Version Control Systems (VCS) are tools that help manage and track changes to files and projects over time, with key features including change tracking, collaboration, and backup. There are three types of VCS: Local, Centralized, and Distributed, each with its advantages and limitations. Git is a popular distributed VCS that allows for efficient collaboration and version control, while GitHub is a cloud-based platform that enhances Git's functionality with additional collaboration and project management features.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views6 pages

Unit 3.1 - Git Notes

Version Control Systems (VCS) are tools that help manage and track changes to files and projects over time, with key features including change tracking, collaboration, and backup. There are three types of VCS: Local, Centralized, and Distributed, each with its advantages and limitations. Git is a popular distributed VCS that allows for efficient collaboration and version control, while GitHub is a cloud-based platform that enhances Git's functionality with additional collaboration and project management features.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

Version Control Systems - Git & Git Hub

What is VCS?
A Version Control System (VCS) is a software tool that helps developers manage and track
changes to files, code, or projects over time. It keeps a detailed history of modifications,
allowing users to collaborate, revert to previous versions, and identify who made specific
changes & when.

Key Features of a VCS:


Change Tracking: Every change made to a file is recorded, creating a timeline of edits.
Collaboration: Multiple people can work on the same project simultaneously without
overwriting each other's work.

Backup and Recovery: If a mistake is made, previous versions can be restored easily.
Branching and Merging: Developers can work on different features or fixes in parallel
(branches) and later combine (merge) them into the main project.

What are various types of VCS?


There are 3 types of Version Control System

1. Local Version Control System (LVCS)


2. Centralised Version Control System (CVCS)
3. Distributed Version Control System (DVCS)

Local Version Control System (LVCS): Tracks changes on a single computer.


Example: RCS (Revision Control System).
Advantages: Simplicity, Fast Operations, Low Resource Requirement
Limitation: Not suitable for team collaboration.

Centralized Version Control System (CVCS): Stores the project history on a central
server that all users can access.
Examples: SVN (Subversion), CVS, Clear Case, VSS etc.
Advantages: Team Collaboration, Single Repository, Access Control, Integrability
Limitation: If the central server fails, the history and collaboration are at risk.

Distributed Version Control System (DVCS): Each user has a complete copy of the
project history on their computer and optionally on a Central repository as well
Examples: Git, Mercurial
Advantages: Offline Work, Redundancy, Fast Performance, Enhanced Collaboration,
Scalability
Version Control Systems - Git & Git Hub
What are various VCS Storage Strategies?
There are 2 popular Storage Strategies used by Version Control Systems

File Based: A File-based version control system tracks changes to individual files, typically
by storing snapshots or deltas of each file's content over time. It focuses on the file as the
primary unit of versioning

Content Based: Tracks changes based on the content of the data, often at a more granular
level than files, focusing on the actual data or objects within files.

File Based Vs. Content Based: Here is the comparison table

Feature File Based VCS Content Based VCS


Tracking Method • Treats each file as an • Tracks changes based on the
individual entity for content of files, using mechanisms
versioning. like cryptographic hashes (e.g.,
• Tracks changes to files SHA-1).
based on file names, paths, • Identifies and stores unique
and timestamps versions of files based on their
data.
Key Characteristics • Versions are identified by • Versions are linked to content
the file's location or name. rather than file name or location.
• Does not analyse or hash • Efficiently handles duplicate
the content within files. content and ensures data integrity.
Examples • RCS, CVS, VSS, Clear Case • Git, Mercurial
Advantages • Simple and straightforward • More efficient storage (avoids
for small projects. duplication by referencing
• Works well for tracking identical content).
changes to individual files • Ensures data integrity and security
in centralized setups by hashing content.
• Ideal for distributed workflows
where tracking content across
systems is necessary
Limitations • Cannot efficiently track • Slightly more complex for
duplicate or identical beginners compared to file-based
content across files systems
• Lacks advanced content • Content hashing requires higher
integrity checks (e.g., computational resources.
cryptographic hashes).
Version Control Systems - Git & Git Hub
What is Git?
Git is a widely-used, open-source Content Based Distributed Version Control System (DVCS)
designed to manage and track changes to code during software development. It enables
multiple developers to collaborate on the same project while maintaining a history of every
change made. Git provides features such as branching, merging, and rollback, making it a
powerful tool for software development workflows.

Git Offerings to Developers


Local Git: Git allows every developer to have a complete copy of the repository locally,
including its history. This is called Local Git
Remote Git: Developers can work offline, commit changes locally, and synchronize with
others using a central server or directly through peer-to-peer sharing. A Git that hosts a copy
of a team’s or an individual’s repository for sharing purposes, usually on a server or a cloud
platform such as GitHub, GitLab, Bitbucket, Azure Repos is known as Remote Git.
Speed: Git is designed for fast operations like committing, branching, and merging.
Data Integrity: Every file change is tracked using cryptographic hashes, ensuring data
integrity.
Flexibility: Git's distributed nature lets developers work offline and merge their changes
with the main (central) repository when ready.
Popularity: Git is the backbone of many modern remote development platforms including
GitHub, Git Lab, Bit Bucket etc., which enhances collaboration among developers.

Git Chronological History:


April 2005: Initial version of Git by Linus Torvalds for Linux kernel development project
2005-2008: Git rapidly gained traction due to its efficiency
2008: GitHub, an intuitive interface for Git was launched•
Today: Git is used in almost every project, powering collaborative platforms like GitHub, Git
Lab, and Bit bucket
Version Control Systems - Git & Git Hub

What is Git Hub?


GitHub is a cloud-based platform built around Git (a distributed version control system). It
provides hosting for software development and version control using Git. Here’s a
breakdown:

Core Purpose

 Stores and manages source code repositories online.


 Tracks and manages changes to code over time.
 Facilitates collaboration between developers.

Key Features

 Repository Hosting → Store project code with history.


 Version Control → Branching, merging, pull requests.
 Collaboration → Teams can review code, discuss changes.
 CI/CD Integration → Automate testing and deployments (GitHub Actions).
 Project Management → Issues, Kanban-style project boards.
 Open Source Hub → Millions of public repositories available

How It Differs from Git

 Git → Local version control tool (runs on your system).


 GitHub → Cloud service that uses Git and adds collaboration, sharing, and
automation features.

Alternatives
 GitLab
 Bitbucket
 Azure DevOps
In short: GitHub = Git + Cloud Hosting + Collaboration Tools.
Version Control Systems - Git & Git Hub
GitHub Commands
Version Control Systems - Git & Git Hub

You might also like