Gitは分散型のソースコード管理システムです。ソースコードに対して加えられた変更点を記録し、任意の時点のコードを復元するバージョン管理機能や、ほかの開発者がソースコードに加えた変更を自分のソースコードに取り込むマージ機能、ほかの開発者が公開しているソースコードを自分の作業環境にコピーするクローン機能といった、ソフトウェア開発において有用な多数の機能を備えています。
バージョン管理というのは、指定した任意の時点における指定したファイルやディレクトリの内容を「リポジトリ」と呼ばれるデータベースに記録しておくことで、変更の内容をあとから容易に参照できるようにすることです。これにより、誰がどの個所を修正したのか、修正前はどのような状態だったのか、というのを容易に把握できるようになり、また修正後のファイルを記録しておいた修正前の状態に復元する、といったことも簡単に行えるようになります。このような処理を行うシステムは、「バージョン管理システム」(Version Control System、VCS)と呼ばれており、またリポジトリに状態を記録することを「コミット」と呼びます。
近年のバージョン管理システムの多くではファイルやディレクトリの変更履歴を管理するだけでなく、ネットワーク経由でリポジトリへのアクセスを可能にするクライアント/サーバー機能が搭載されており、これを利用してリモートのサーバーから最新版のファイルや記録されている任意の時点のファイルを取り出したり、また自分が更新したファイルの差分をリモートのサーバーに送信して変更内容を記録させる、といったことが可能になっています。そのため「ソースコード管理システム」(Source Code Management System、SCM)などと呼ばれることもあります。
Gitは、Linuxを開発したLinus Torvalds氏がLinuxの開発のために作成したソースコード管理システムです。大量のソースコードが存在し、また多くの開発者が関わるLinuxのような大規模なソフトウェア開発に対応するため、高速な動作や開発者間での連携のしやすさ、開発のしやすさなどを念頭に置いて設計されています。
Gitでは複数の開発者が関わるプロジェクトでも容易に開発が進められるよう、「分散型」と呼ばれるアーキテクチャを採用しています。分散型のソースコード管理システムでは、開発者が作業を行うディレクトリ内にリポジトリ(ローカルリポジトリ)が作成され、必要に応じてほかのリポジトリと同期を行うという仕組みになっています。開発者/マシンごとにリポジトリが用意されるため、開発者はほかの開発者による干渉を最小限に抑えて開発が行えます。
開発者がソースコードに対して加えた変更は、「push」および「pull」と呼ばれる仕組みでほかのリポジトリ(リモートリポジトリ)に送信することができます。pushはリモートリポジトリとローカルリポジトリの差分情報をリモートリポジトリに送信するもので、これによりリモートリポジトリとローカルリポジトリを同期させることが可能になります。また、pullはリモートリポジトリとローカルリポジトリとの差分情報をローカルリポジトリに持ってくるもので、ほかの開発者がソースコードに加えた変更点などを手元のソースコードに適用する場合に利用されます。
また、任意のリモートリポジトリからファイルを取り出し、自分の手元でファイルやディレクトリに変更を加えるためにローカルリポジトリを作成する作業は「clone」と呼ばれています。ほかの開発者が作成したソースコードに対し新たに変更を加える際は、cloneを使ってファイルを取得し、修正を加えてコミットし、pushもしくはpullで変更点をやり取りする、という開発スタイルが一般的です。
OSDNでは、Gitを使った開発をサポートするため、次のような機能を提供しています。
これらの機能は、OSDNへのアカウント登録を行うだけですべて無料で利用できます。作成できるリポジトリ数やサイズの制限などはありません。
開発支援サービス「PersonalForge」では、Gitの個人リポジトリやファイルアップローダー、Wikiといった機能を提供する「作業部屋」を利用できます。作業部屋は無制限に作成でき、また任意のファイルをアップロードして公開できます。
PersonalForgeではOSDNが独自に開発したレポジトリブラウザが提供されており、任意のブランチのファイル一覧やコミット履歴、ブランチ/タグ一覧などをWebブラウザ上で確認できます。
ほかのGitリポジトリからのフォーク機能も用意されており、OSDN内のリポジトリだけでなく、任意の公開Gitリポジトリからフォークしてリポジトリを作成することが可能です。
オープンソースソフトウェアの開発に向けた「プロジェクト」機能では、ソースコード管理システムを提供しています。GitおよびSubversion、Mercurial、Bazaar、CVSといったソースコード管理システムが利用可能で、GitおよびSubversion、Mercurialについては独自開発のリポジトリブラウザが提供されています。
そのほかプロジェクト向けにはWikiやファイルリリース(アップローダ)、チケット、ニュース、フォーラム(掲示板)、メーリングリストといった機能も利用できます。
各開発プロジェクトには、開発したソフトウェアのテストやWebサイト構築に利用できるシェルサーバーが無償で提供されます。シェルサーバーにはSSHを利用してログインでき、またMySQLデータベースの利用も可能です。シェルサーバーにはgitやsvn、hgといったコマンドがインストールされており、これらを使ってファイルをシェルサーバーにコピーすることが可能です。
Gitの詳しい使い方などは、OSDN Magazineの特集記事でも解説しています。これらの記事を参考にするとよいでしょう。