Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Version control systems

Version control systems

This presentation discusses version control systems in general and Git in particular. It covers a brief history of VCSs followed by basics of Git, Git terminology and commands. This presentation is part of the tutorial series for SEIP (Software Engineering in Practice) course (2018) at AUEB.

Tushar Sharma

February 21, 2018

More Decks by Tushar Sharma

Other Decks in Programming


  1. Version control systems – Why? • Clutter free workspace (no

    numbered files) • Avoids duplication • Backup and restore • Synchronization • Undo • Track changes (with messages) • Track ownership • Merging and branching • Collaboration
  2. VCS – History (1) Gen. Networking Operations Concurrency Examples 1

    None One file at at time Locks SCCS, RCS 2 Centralized Multi-file Merge before commit Subversion, TFS, CVS 3 Distributed Change- sets/ snapshot Commit before merge Git, Bazaar, Mercurial http://ericsink.com/vcbe/html/history_of_version_control.html
  3. VCS – History (2) http://www.iiis.org/cds2011/cd2011imc/iceme_2011/paperspdf/fb394vz.pdf SCCS by Marc J. Rochkind

    at BellLabs 1972 1980 RCS by Walter F. Tichy at Purdue Univ. 1985 CVS by Dick Grune at Vrije University 1992 ClearCase by Atria (later IBM) 1994 Visual SourceSafe by Microsoft 2000 Subversion by Karl Fogel 2005 Git by open-source community TFS by Microsoft
  4. Git basics (2) • Local operations • Majority of operations

    are local - commit, log, branch... • Integrity • Impossible to change contents without Git knowing about it. • 40 char SHA-1 hash
  5. Git basics (3) • Stages • Committed • Staged •

    Modified http://rogerdudler.github.io/git-guide/ https://git-scm.com/book/en/v2/Getting-Started-Git-Basics
  6. Terminology Commit (or check-in) The act of saving a working

    copy (a workfile or set of workfiles) to your repository.
  7. Terminology Branch A branch is a parallel version of a

    repository. http://rogerdudler.github.io/git-guide/
  8. Terminology Clone A clone is a copy of a repository

    that lives on your computer instead of on a website's server.
  9. Terminology Fork A fork is a personal copy of another

    user's repository that lives on your account.
  10. Terminology Merge Merging takes the changes from one branch (in

    the same repository or from a fork), and applies them into another.
  11. Terminology Pull Request Pull requests are proposed changes to a

    repository submitted by a user and accepted or rejected by a repository's collaborators.
  12. Assignment Taksidiotis – Athens travel guide by the Greeks Tasks

    • Clone the repo – [email protected]:tushartushar/taksidiotis.git • Add an interesting place (such as museum, bar, or restaurant), activity (walking tour, or food/wine-tasting tour), or anything interesting for a tourist to the guide.md file • Contribute to at least 3 categories • The important thing is – you, as a Greek, are recommending it • You may change/modify text added by others • Try to arrange the entries in categories (such as ‘Tour’, ‘Food’, ‘History’, and ‘Islands’) • Commit your changes • Push to the GitHub repo • Deadline – 5 PM, Feb 28, 2018