
Version Control Systems Using Git
Explore the importance of version control systems like Git, learn the basics of version control, its benefits for individuals and teams, and the types of version control systems. Presented by Rohit Das and Rudra Nil Basu.
Download Presentation

Please find below an Image/Link to download the presentation.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.
You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.
E N D
Presentation Transcript
Version Control System using Git
Presented by: Rohit Das 3000114022 rohit.das950@gmail.com Rudra Nil Basu 30000114023 rudra.nil.basu.1996@gmail.com
1. The Problem Why do we need Version Control System anyway?
Difficult to roll back - Almost impossible to maintain if the number of people working in the project is large - - Maintaining group Projects Patches are mostly sent via email - - Testing new unstable features
2. Version Control System
Version Control: What is it? A method for recalling versions of a codebase Keeping a record of changes Who did what and when in the system Save yourself when things inevitably go wrong
Version Control: Why? Individual Back-ups of the project Create a checkpoint in the project at any stage: Fearlessly modify code Tagging: Mark certain point in time Branching: Release versions and continue development
Version Control: Why? Team Everything in Individual Allow multiple developer to work on the same codebase Merge changes across same files: handle conflicts Check who made which change: blame/praise
Version Control: Types Centralised VCS Distributed VCS
A (repository) Check-outs and check-ins are done with reference to this central repository single authoritative data source Centralised VCS
Centralised VCS
Examples: Centralised VCS Concurrent Version System (CVS) Subversion (SVN)
No single repository is authoritative Data can be checked in and out from any repository Distributed VCS
Distributed VCS
Examples Distributed VCS Git Mercurial
3. Git --everything-is-local
Free, open source Fully distributed Handle small files very effectively Tracks contents, not files Data = Snapshot No network Three stages
Created by Linus Torvalds in less than 2 weeks Currently maintained by Junio C Hamano
Three stages: Git: Stages Working directory Staging directory Git directory (repository)
Setup Git: Development git init git clone <remote-url>
Check snapshots of the codebase Git: Development git log Show commit logs
Commit logs Git: Development
Branches git checkout b <branch-name> Git: Development
View changes Git: Development git diff
View changes Git: Development
Update staging area Git: Development git add <files> Add file contents to the index
Create snapshots of your codebase Git: Development git commit Records changes to the repository
Merge other branches Git: Development git merge
Git: Development
Make patches git format-patch --stdout > fix.patch Git: Development Patch created as fix.patch Prepare patches for email submission Send patch via mail
Make patches Git: Development
Applying patches Git: Development git apply < fix.patch Applies changes from the patch
Much efficient workflow Creating and merging branches are very easy and fast Result?
The development process of the Linux kernel is maintained using Git Result? The Linux kernel development process has: Over 2000 individual contributors per year Grows by nearly 300,000 lines per year
THANK YOU! Rudra Nil Basu rudra.nil.basu.1996@gmail.com rudranilbasu.me Rohit Das rohit.das950@gmail.com mouri11.github.io