Activity Team/Git Introduction
Git is a revision control system (sometimes called a "version control system") for programmers used to track and manage changes to code and other data. Git is a decentralized system, with no "master" tree, and was originally written by Linus Torvalds to manage the Linux kernel sources. Git is used by many open source projects to manage development among programmers, and is used by the OLPC as its preferred version control system.
A short overview of a version control system
The version control system provides the detailed information on the source code. Using the repository, a user can:
- Browse or download the current source code and data files .
- Browse or download any version that was ever put in the repository.
- See the comments explaining why changes were made.
- See what changed betweens versions.
- See which versions were picked for which releases, also known as 'heads'.
Users that have write access (or commit access) to the repository can do more:
- Add new files to a project.
- Add changes back into the repository, creating new versions.
- Edit comments to explain why changes were made.
- Merge changes made from two different people into a single version.
- Create a separate branch of development to keep changes separate from others.
For more information about version control systems, see Wikipedia
Gitorious provides open source infrastructure for hosting open source projects that use Git. The central entity in Gitorious is the project, which contains one or more top-level repositories and any repositories managed by the project's contributors.
This allows you, as a project administrator, to keep an eye on what people are working on in their individual clones of your repositories. It also lets you merge or provide feedback on their contributions.
Likewise, as a project contributor, you get a place to host your contributions and provide feedback back into the projects ecosystem and easily collaborate with others on the same project. You get your own personal clone of the project on the site that you can work freely in and a way to package up your changes and notify the other project members about your changes.