Introduction to Git : What is Git?


What is Git?

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
    • 1982, open source
  • Concurrent Versions System CVS
    • 1986-1990 open source
  • Apache Subversion SVN
    • 2000, open source
  • 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

คำสำคัญ (Tags): #what is git?
หมายเลขบันทึก: 518741เขียนเมื่อ 7 กุมภาพันธ์ 2013 00:30 น. ()แก้ไขเมื่อ 7 กุมภาพันธ์ 2013 02:02 น. ()สัญญาอนุญาต: ไม่สงวนสิทธิ์ใดๆจำนวนที่อ่านจำนวนที่อ่าน:


ความเห็น (1)
พบปัญหาการใช้งานกรุณาแจ้ง LINE ID @gotoknow
ClassStart
ระบบจัดการการเรียนการสอนผ่านอินเทอร์เน็ต
ทั้งเว็บทั้งแอปใช้งานฟรี
ClassStart Books
โครงการหนังสือจากคลาสสตาร์ท