What is Git? Git is a software.
- Keeps track of changes
- especially text change
- version1, version 2, version 3
- Version control system (VCM)
- Source code management (SCM)
Example of version control (non-source code)
- File naming (Budget_v4.xls, Logo_v2.gif)
- Microsoft Word's Track Changes
- Adobe Photoshop's History
- Wikis
- Undo: control+Z (Windows), comand+z (Mac)
The history of Git
- Source Code Control System SCCS
- 1972, closed source, free with Unix
- Revision Control System RCX
- Concurrent Versions System CVS
- Apache Subversion SVN
- BitKeeper SCM
- 2000, closed source, proprietary
- distributed version control
- 'community version' was free
- used for source code of the Linux Kernel from 2002 - 2005
- controversial to use propriatary SCM for an open source project
- April 2005: the community version not free anymore
- Git is born
- April 2005
- created by Tinus Torvalds
- replacement for BitKeeper to manage Linux kernel source code
- distributed version control
- open source and free software
- compatible with Unix-like system (linux ,Mac OS X, and solaris) and Windows
- faster than other SCMs (100x in some cases)
- better safeguards against data corruption
- Git is a hit
- explosion in popularity
- no official statistics
- GitHub launced in 2008 to host Git repositories
- 2009: over 50,000 repository, over 100,000 users
- 2011 : over 2 million repositories, over 1 million users
About distribued version control
- distributed versin control
- different users or team of user maintain their own repositores, instead of working from a centrol repository
- changes are stored as change sets or patches
- track changes, not version
- differents from CVS and SVN , which track versin
- change sets can be exchaged between repositories
- merge in change set or apply patches.
- no single master repository: just many working copies each with their own combination of changes sets
- imagine changes to a document as sets A, B, C, D, E, F
- Repo 1 : A, B, C, D, E, F
- Repo 2: A, B, C, D
- Repo 3: A, B, C, E
- Repo 4: A, B, E, F
- no need to communicate with a central server
- faster
- no network access required
- no single failure point
- encourages participation and forking or projects
- developers can work independently
- submit change sets for inclusion or rejection
Who should use Git?
- anyone wanting to track edits
- review a history log of changes made
- view differences between version
- retrieve old versions
- anyone needing to share changes with collaborators
- anyone not afraid of command-line tools
- programmers and develpers
- HTML, CSS, JavaScripts
- PHP, Ruby, Ruby on Rails, Perl, Python, ASP
- Java, C, C++, C#, Objective-c
- ActionScript, CoffeeScripts, Haskell, Scala, Shell scripts
- not as useful for tracking non-text files
- images, movies, music, fonts
- word processing files, spreadsheets, PDFs
- End for What is Git-
contact @witprompitakkul