Git is a modern, distributed version control system, developed by Linus Trovalds (Linux) to be used for the development of the linux kernel. It has been around since 2005 (matured) and is open source, and distributed under the GPLv2 (GNU General Public License version 2).
Git's popularity is growing rapidly. It has been adopted by many large-scale projects having thousands of developers and contributors, among which are Android, SpringSource, Perl, Python, Ruby/Rails. Over 27% of professional software developers use Git as their primary source control system (Eclipse Survey of May-2012).
Being distributed, Git allows every developer to have her own complete copy of the entire repo (including revision history, and tracking capabilities). To branch, commit and merge locally, (independent of network, central server, or other developers) and to choose what is ready to be shared.
Git was designed to remain out of the way – supporting developers instead of slowing them down with performance issues, repo access authorizations or SCM workflow limitations. Git was designed to be small, quick and robust, and to assure data integrity protecting the repo against data corruption whether accidental or malicious.
Participants will be introduced to Git starting at the very basics, through day-to-day practices and take a deep dive into Git internals. Gaining solid understanding of Git's modus operandi will allow understanding more advanced Git capabilities, including branching, merging, rebasing, conflict handling and synchronizing code among remote repos.