The birth of Git ● It's all began in Linux Kernel community ● Tarballs and gzip used for long time to contribute patch ● BitKeeper as first SCM for Linux Kernel project ● Friendship is over in 2005 ● Development of Kernel stopped till SCM is found ● No good enought alternatives found ● 2 weeks to create initial version of Git
Content ● Content Tracking != File Tracking ● Name, path etc. is not part of content ● SHA1 algorithm used create content digest ● Separate "Index" and "Data" ● Store the version, not difference ● History is computed rather stored
Branches and merges ● De-centralized but centralized ● Developers are welcome to do branches ● Pulling requests to each other ● Pushing changes to origin ● Merge is easy now
Development model with Git ● No permissions to commit ● Branches, branches, branches ● Network of Trust instead of Corporate Policy ● Leaders have release branches