SlideShare uma empresa Scribd logo
1 de 17
Baixar para ler offline
What is version control
software and why do you
need it?
Leonid Mamchenkov
http://mamchenkov.net
Contents
●   What is version control software?
●   Why do you need it?
●   Where did it come from?
●   How does it work?
●   Which one should you use?
●   How do you start using it?
What is version control software?
Version Control Software (VCS) is a set of
programs that manage changes to computer
files, such as documents, images and source
code.
 
Also known as:
● Revision control software
● Version management software
● Source control software
● Configuration management software
Why do you need it?
●   Undo, incremental backup of changes
●   Trying out ideas
●   Integrating several sources or subsystems
●   Collaboration with other people
●   Troubleshooting
●   Statistics
●   Time travel
●   Productivity
●   Sanity!!!
Does this look familiar?
Where did it come from?
●   Engineering: blueprints
●   Law: contract redline, legal backline
●   Software Development: early UNIX days
●   SCCS: 1972, Bell Labs, Marc J. Rochkind
●   diff: 1974, AT&T, Hunt-McIlroy algorithm
●   RCS: 1982, GNU, Walter F. Tichy
●   patch: 1985, Larry Wall
●   CVS: 1986, Dick Grune
●   Subversion: 2000, CollabNet, Apache
●   Git: 2005, Linus Torvalds
How does it work?
How does it work?

 ●   Repository
 ●   Revisions
 ●   Tree baseline
 ●   Branches
 ●   Tags
 
 
 
Wikipedia: Revision control
How does it work?
How does it work?
Which one should you use?
●   Git
●   If you can't use Git, using anything else
●   Make sure you do use something!
 
●   Git   is   free and Open Source
●   Git   is   distributed
●   Git   is   cross-platform (Linux, Windows, ...)
●   Git   is   very fast. And smart.
●   Git   is   de fact standard in Open Source world
●   Git   is   on the GitHub
How do you start using it?
Surprise! You are probably already using it via
Microsoft Office, OpenOffice.org, KOffice,
WordPress, Drupal, Joomla, or Wiki engine.
 
● Install Git
● Tutorials, book (http://book.git-scm.com)
● Try and play
● Register GitHub account
● Enjoy!
How do you start using it?
Once off

# yum install git
$ git config --global user.name "John Doe"
$ git config --global user.email john@doe.com
How do you start using it?
Once per project

$ mkdir Project
$ cd Project
$ git init
How do you start using it?
Simple workflow

$   vim README
$   mkdir Files
$   mv /tmp/*.pdf Files/
$   git add .
$   git commit -m "Initialized the project"
$   git rm Files/invoice123.pdf
$   git commit -m "Removed invoice123.pdf from the project"
$   vim README
$   git diff
$   git add .
$   git commit -m "Added copyright notice to README"
$   git log
How do you start using it?
The End
Thank you.

Mais conteúdo relacionado

Mais procurados

Using Git and BitBucket
Using Git and BitBucketUsing Git and BitBucket
Using Git and BitBucket
Medhat Dawoud
 

Mais procurados (20)

Version control
Version controlVersion control
Version control
 
Git the fast version control system
Git the fast version control systemGit the fast version control system
Git the fast version control system
 
Github basics
Github basicsGithub basics
Github basics
 
BLUG 2012 Version Control for Notes Developers
BLUG 2012 Version Control for Notes DevelopersBLUG 2012 Version Control for Notes Developers
BLUG 2012 Version Control for Notes Developers
 
The everyday developer's guide to version control with Git
The everyday developer's guide to version control with GitThe everyday developer's guide to version control with Git
The everyday developer's guide to version control with Git
 
Git Introduction
Git IntroductionGit Introduction
Git Introduction
 
Software Versioning with Bitbucket and Eclipse
Software Versioning with Bitbucket and EclipseSoftware Versioning with Bitbucket and Eclipse
Software Versioning with Bitbucket and Eclipse
 
git and github
git and githubgit and github
git and github
 
Introduction to Git and Github
Introduction to Git and Github Introduction to Git and Github
Introduction to Git and Github
 
Using Git and BitBucket
Using Git and BitBucketUsing Git and BitBucket
Using Git and BitBucket
 
Starting with Git & GitHub
Starting with Git & GitHubStarting with Git & GitHub
Starting with Git & GitHub
 
Luis atencio on_git
Luis atencio on_gitLuis atencio on_git
Luis atencio on_git
 
GIT | Distributed Version Control System
GIT | Distributed Version Control SystemGIT | Distributed Version Control System
GIT | Distributed Version Control System
 
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)
 
Introduction to git and github
Introduction to git and githubIntroduction to git and github
Introduction to git and github
 
Advanced Git Tutorial
Advanced Git TutorialAdvanced Git Tutorial
Advanced Git Tutorial
 
Introduction to git administration
Introduction to git administrationIntroduction to git administration
Introduction to git administration
 
Git 101
Git 101Git 101
Git 101
 
Git for beginners
Git for beginnersGit for beginners
Git for beginners
 
Git for IBM Notes Designer
Git for IBM Notes DesignerGit for IBM Notes Designer
Git for IBM Notes Designer
 

Semelhante a What is version control software and why do you need it?

The adoption of FOSS workfows in commercial software development: the case of...
The adoption of FOSS workfows in commercial software development: the case of...The adoption of FOSS workfows in commercial software development: the case of...
The adoption of FOSS workfows in commercial software development: the case of...
dmgerman
 
Git Tutorial A Comprehensive Guide for Beginners.pdf
Git Tutorial A Comprehensive Guide for Beginners.pdfGit Tutorial A Comprehensive Guide for Beginners.pdf
Git Tutorial A Comprehensive Guide for Beginners.pdf
uzair
 

Semelhante a What is version control software and why do you need it? (20)

Open source
Open sourceOpen source
Open source
 
Git In One Evening
Git In One EveningGit In One Evening
Git In One Evening
 
The 10 Commandments of Release Engineering
The 10 Commandments of Release EngineeringThe 10 Commandments of Release Engineering
The 10 Commandments of Release Engineering
 
Pentester++
Pentester++Pentester++
Pentester++
 
GIT AND GITHUB (1).pptx
GIT AND GITHUB (1).pptxGIT AND GITHUB (1).pptx
GIT AND GITHUB (1).pptx
 
Open Source in Real Life
Open Source in Real LifeOpen Source in Real Life
Open Source in Real Life
 
Beginner Workshop for Student Developers - Tratech-presentation.pdf
Beginner Workshop for Student Developers - Tratech-presentation.pdfBeginner Workshop for Student Developers - Tratech-presentation.pdf
Beginner Workshop for Student Developers - Tratech-presentation.pdf
 
Using Git with WordPress - Presented by Nigel Rodgers.
Using Git with WordPress - Presented by Nigel Rodgers.Using Git with WordPress - Presented by Nigel Rodgers.
Using Git with WordPress - Presented by Nigel Rodgers.
 
Git hub
Git hubGit hub
Git hub
 
Volunteering at YouSee on Technology Support
Volunteering at YouSee on Technology SupportVolunteering at YouSee on Technology Support
Volunteering at YouSee on Technology Support
 
Embedded linux build systems
Embedded linux build systems  Embedded linux build systems
Embedded linux build systems
 
GitLab for CI/CD process
GitLab for CI/CD processGitLab for CI/CD process
GitLab for CI/CD process
 
The adoption of FOSS workfows in commercial software development: the case of...
The adoption of FOSS workfows in commercial software development: the case of...The adoption of FOSS workfows in commercial software development: the case of...
The adoption of FOSS workfows in commercial software development: the case of...
 
Let's talk FOSS!
Let's talk FOSS!Let's talk FOSS!
Let's talk FOSS!
 
OSMC 2014: From monitoringsucks to monitoringlove (and back) | Kris Buytaert
OSMC 2014: From monitoringsucks to monitoringlove (and back) | Kris BuytaertOSMC 2014: From monitoringsucks to monitoringlove (and back) | Kris Buytaert
OSMC 2014: From monitoringsucks to monitoringlove (and back) | Kris Buytaert
 
Teaching Open Source In The University
Teaching Open Source In The UniversityTeaching Open Source In The University
Teaching Open Source In The University
 
Releaseflow: a healthy build and deploy process
Releaseflow: a healthy build and deploy processReleaseflow: a healthy build and deploy process
Releaseflow: a healthy build and deploy process
 
Git Tutorial A Comprehensive Guide for Beginners.pdf
Git Tutorial A Comprehensive Guide for Beginners.pdfGit Tutorial A Comprehensive Guide for Beginners.pdf
Git Tutorial A Comprehensive Guide for Beginners.pdf
 
Hacking the Linux Kernel - An Introduction
Hacking the Linux Kernel - An IntroductionHacking the Linux Kernel - An Introduction
Hacking the Linux Kernel - An Introduction
 
Continuous Delivery of Puppet Manifests
Continuous Delivery of Puppet ManifestsContinuous Delivery of Puppet Manifests
Continuous Delivery of Puppet Manifests
 

Último

Último (20)

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 

What is version control software and why do you need it?

  • 1. What is version control software and why do you need it? Leonid Mamchenkov http://mamchenkov.net
  • 2. Contents ● What is version control software? ● Why do you need it? ● Where did it come from? ● How does it work? ● Which one should you use? ● How do you start using it?
  • 3. What is version control software? Version Control Software (VCS) is a set of programs that manage changes to computer files, such as documents, images and source code.   Also known as: ● Revision control software ● Version management software ● Source control software ● Configuration management software
  • 4. Why do you need it? ● Undo, incremental backup of changes ● Trying out ideas ● Integrating several sources or subsystems ● Collaboration with other people ● Troubleshooting ● Statistics ● Time travel ● Productivity ● Sanity!!!
  • 5. Does this look familiar?
  • 6. Where did it come from? ● Engineering: blueprints ● Law: contract redline, legal backline ● Software Development: early UNIX days ● SCCS: 1972, Bell Labs, Marc J. Rochkind ● diff: 1974, AT&T, Hunt-McIlroy algorithm ● RCS: 1982, GNU, Walter F. Tichy ● patch: 1985, Larry Wall ● CVS: 1986, Dick Grune ● Subversion: 2000, CollabNet, Apache ● Git: 2005, Linus Torvalds
  • 7. How does it work?
  • 8. How does it work? ● Repository ● Revisions ● Tree baseline ● Branches ● Tags       Wikipedia: Revision control
  • 9. How does it work?
  • 10. How does it work?
  • 11. Which one should you use? ● Git ● If you can't use Git, using anything else ● Make sure you do use something!   ● Git is free and Open Source ● Git is distributed ● Git is cross-platform (Linux, Windows, ...) ● Git is very fast. And smart. ● Git is de fact standard in Open Source world ● Git is on the GitHub
  • 12. How do you start using it? Surprise! You are probably already using it via Microsoft Office, OpenOffice.org, KOffice, WordPress, Drupal, Joomla, or Wiki engine.   ● Install Git ● Tutorials, book (http://book.git-scm.com) ● Try and play ● Register GitHub account ● Enjoy!
  • 13. How do you start using it? Once off # yum install git $ git config --global user.name "John Doe" $ git config --global user.email john@doe.com
  • 14. How do you start using it? Once per project $ mkdir Project $ cd Project $ git init
  • 15. How do you start using it? Simple workflow $ vim README $ mkdir Files $ mv /tmp/*.pdf Files/ $ git add . $ git commit -m "Initialized the project" $ git rm Files/invoice123.pdf $ git commit -m "Removed invoice123.pdf from the project" $ vim README $ git diff $ git add . $ git commit -m "Added copyright notice to README" $ git log
  • 16. How do you start using it?