This is an old revision of the document!
Table of Contents
Git Version Control System
Git is a powerful and fast Open Source distributed revision control system. It is probably able to solve most of your organizational problems and makes sharing and merging source code easy. If you are searching for a version control system (VCS) to keep track of your software projects,1) give it a try.
You may have a look at the following talks to estimate if Git would be a useful tool for you:
Google Tech Talk: Linus Torvalds on git (2007-05-03)
Git – a Talk by Randal Schwartz (2007-10-12) search?q=-3999952944619245780&btnI=lucky
Another important point why you may want to learn and use Git is the fact, that it is used by many Open Source projects. If you want to improve and influence your favorite applications through contributing patches, your (feasible) Git or unified diff patch is more likely to get applied. If you provide something else which people are less familiar with or which needs more work to put into a patch, your chances are much lower. This is simply how things work in Open Source development in general.
Installation
Ubuntu
6.06 Dapper and above
Simply install the following package(s):
git-core
(main)
After installation, Git is available via terminal: git
There are some additional packages, providing special functionality:
git-doc
(main) – offline documentation, accessible via/usr/share/doc/git-doc/index.html
git-svn
(main) – Tools to use Git locally on your machine (useful if you are forced to work in an Subversion/SVN environment)git-cvs
(main) – Tools to use Git locally on your machine (useful if you are forced to work in an CVS environment)git-gui
(universe) – simple GUI (Tk based) for most every day Git task. You can start it viagit gui
. A look at its man page is helpful.
Usage
Git is too powerful and cool to describe its usage in a short and useful way here. Additionally, there are really good resources about “using Git” out there. Reserve a weekend for diving into the topic and have a look at:
- The books listed at “Further reading”. Some of them are available online at no charge.
- Git for Designers – introduction on the assumption the person has no previous knowledge about Source Code Management (SCM)
- GitCasts provides many Git screencasts (download mirrors available at techscreencast.com/tag/Gitcast)
- The videos/talks mentioned above.
- Git - SVN Crash Course – might be helpful if you're coming from the SVN world.
Further Reading
- Scott Chacon - Pro Git (ISBN 978-1-43021-833-3) – You can read it online for free (CC licensed). Translations are also available (e.g. German).
- Ben Lynn - Git Magic (ISBN 978-1-45152-334-8) – You can read it online for free (GPL licensed). Translations are also available (e.g. Spanish).
- Travis Swicegood - Pragmatic Version Control Using Git (ISBN 978-1-93435-615-9)
- Jon Loeliger - Version Control with Git (ISBN 978-0-59652-012-0)
See also
- OpenSSH – It is common to provide secure write/push access to remote Git repositories by SSH only.
Weblinks
General
- GitHub – Git repository hosting service, public Open Source repositories are free of charge.
- Gitorious – Git repository hosting service, public Open Source repositories are free of charge.
Others
- Re: why not preserve file permissions? – Very clear and informative answer about the question why Git does not track most file permissions.