{:check ["true"], :rank ["history" "projects" "about_git"]}

Index

Introducing git

https://en.wikipedia.org/wiki/Git

Git is a distributed version-control system for tracking changes in source code during software development. It is designed for coordinating work among programmers, but it can be used to track changes in any set of files. Its goals include speed, data integrity, and support for distributed, non-linear workflows.

-- Wikipedia

An implementation of versioning filesystem

  • git converts any directory into a versioned filesystem (VFS).

  • git provides many operations that can be applied to the VFS.

  • Users still interact with a normal filesystem using OS commands (e.g. cp, mv, rm, ...)

History

History of git

  • 1977

    UC Berkeley released a derivative of UNIX known as BSD.

  • 1983

    Richard Stallman started the GNU-project, with the goal of creating a free UNIX-like operating system. Eventually GNU became a collection of open source UNIX commands.

  • 1985

    Intel released the 80386 processor, the first personal computing processor that is powerful enough to run UNIX-like operating systems.

    • 32-bit registers
    • memory management with paging
  • 1987

    MINIX is the first UNIX like research OS running on personal computers. But it was not open source, and was limited to 16-bit processors, making it largely an educational toy OS.

  • 1991

    Linus Tovalds, an undergrad at U of Helsinki, 21 year old, started the development of Linux from the code base from MINIX, using the GNU C compiler.

    Key features:

    1. "won't be big and professional like GNU"
    2. "free"
    3. for 386/486 processors
  • 1994

    Linux is the kernel, and the tools are largely from the GNU project.

  • 1991 - 2002

    The development of Linux kernel attracted thousands of contributors, reaching over 10 million lines of code. Version control became critical for Linus Tovalds to maintain a balance between kernel features and its quality.

    Version control was done using CVS.

  • 2002 - 2005

    Linux kernel code moved to a commercial solution provider: BitKeeper. A free-of-charge agreement was reached between the company BitMover and the Linux kernel community.

  • 2005

    BitMover starts to charge a license fee to some kernel developers including Linus Tovalds. Tovalds started the development of git as an immediate replacement strategy to move away from BitKeeper.

    • July 1, 2005, BitKeep requires a commercial license.
    • July 17, 2005, first release of git, version 0.99
    • December 21, 2005, first stable release of git, version 1.0.13

    Git support distributed version control with peer-to-peer hosted repositories.

  • 2007 - 2008

    Chris Wanstrath, PJ Hyett, Tom Preston-Werner and Scott Chacon launched Github, a web service for hosting git repositories in the cloud.

  • 2011 - 2012

    • Github became the de-factor leader among other respository hosting services (Google code and SourceForge).
    • Number of repositories exceeded 2 million.
    • Github raised over \$100 million in funding, with a market valuation of \$750 million.
  • 2018

    Microsoft acquired Github for $7.5 billion.

Projects

Projects hosted on Github

There are over 96 million projects hosted on Github.

  • Linux kernel
  • Google Kubernetes, Docker
  • Microsoft Visual Studio Code
  • Node.js
  • TensorFlow and PyTorch
  • Apple Swift
  • Google Flutter
  • Python
  • ...

About Git

Git is a standard

The tech industry has chosen git as its de-facto standard.

As a developer

  • Secure access of versioned code base.
  • Collaborate with other team members.
  • Utilize existing open source software and libraries

As a data scientist

  • Maintain versioned data sets.
  • Collaboarte with other team memebers.
  • Track data analysis code and their results with git.