GIT / Version Control Flashcards
GIT
GIT is software that keeps track of changes that you make to files and directories. Because what it does is manage versions for you, GIT is referred to as a Version Control System
- Distributed Version Control
- Open source and free software
- Compatible with Unix-like systems (Linux, Max OS X, and Solaris) and windows
- Faster than other SCMs (100x in some cases)
- Better safeguards against data corruption
Version Control System (VCS)
Can be used interchangably with (SCM) and is used for source code management
Source Code Managment (SCM)
Can be used interchangably with (VCS) and is used for source code management
Examples of Version Control (non-source code)
- File Name (budget_1, budget_2_)
- Microsoft Word’s Track Changes
- Adobe PhotoShop’s History
- Wikis
- Undo: Control + Z (windows)
These provide useful mental metaphors for you to have in your head to think about the way that a VCS works. Because ultimately they are all doing the same thing, they are keeping track of different versions, they are allowing us to go forwards and backwards in time to see different changes that have been made, and to even compare those changes between different versions
History of GIT
-
Source Code Control System (SCCS)
- 1972, closed source, free with Unix
- Stored the oringinal file and then kept track of all the changes that went after it.
- Only one file at a time, one user at a time
-
Revision Control System (RCS)
- 1982, open source
- Kept the most recent file in its whole form, and if you wanted previous versions, the yo applied the change snapshot to go backwards.
- Only one file at a time, one user at a time
-
Concurrent Versions System (CVS)
- - 1986 - 1990, open source
- Repository, concurrent - meaning it could be on a server and have multiple users work on it at a time.
- Mutliple Files, multiple users at a time
-
Apache Subersion (SVN)
- -2000, open source
- Allowed saving of non-text files like images
- Track changes to files and groups of files and in the directory
- Mutliple Files, multiple users at a time
-
GIT
- -April 2005
- Created by Linus Torvalds
- Distrubuted Version Conrol
Linus Torvalds
Creator of Linux and still drives the development of the Linux Kernel.
Creator of GIT
Distributed Version Control
- No need to communicate with central server
- faster
- no network access required
- no single failure point
- encourages participation and “forking” of projects
- developers can work independently
- submit change set for inclusion or rejection
two-tree architecture
two-tree architecture
three-tree architecture
three-tree architecture
Workflow
Workflow
Checksum
Checksum
SHA-1
SHA-1
The HEAD pointer
The HEAD pointer
Master Branch
Master Branch