Linux Kernel & Device Driver Programming ↑

Git

 

Introduction

Git is the distributed source code management (SCM) software used by the Linux kernel developers, and by a number of other open-source development projects.

Source Code Management

A source code management system (sometimes also called "software configuration management" , "revision control", or "version control" systems) tool allows you to track revisions to both files and collections of file versions (configurations), obtain copies of past versions at any point, and roll back to older versions if you desire.

There are many different SCM tools, of both commercial and open source varieties. Integrated development environments typically will include a SCM system. You can also use SCM in a stand-alone fashion.

Git is the SCM tool used by the Linux kernel development community. It differs from some others in being based on a decentralized, distributed model. That is, instead of there being a single master repository for a project, each team member can maintain his/her own repository, and exchange configurations of the project software with other team members on a pairwise basis.

How to Learn Git

To get started using and learning Git, I recommend you do the following:

  1. If you have the patience, listen to the 2-hour tutorial
  2. Start playing with git, on a scratch directory, using the command-line tools.
  3. Along the way, use the GUI tool gitk to visualize the repository tree, to verify that the commands you are using are having the effects you intended.
  4. When you run into something you don't know how to do, use Google to find out how others do it. You will probably find references to Git user manual maintained by the Git kernel group. However, beware that Git is evolving, so there may be differences between what you read on the Web and what your find installed on your system.
  5. Somewhere along the way, you may want to read all or part of some of the many Web references, such as Git Magic or the Git Tutorial.
  6. You may find the Git cheat sheet useful.

Git is a rather large collection of tools, and there are many Git references on the Web, besides those cited above. Different people may find different styles of references more helpful, so feel free to do your own searching.

T. P. Baker. ($Id$)