Gitは、Linuxカーネルの生みの親「Linus Torvalds」氏が、Linuxカーネルの巨大プロジェクトにおいて、ソースコードを効率良く管理するために開発したものです。巨大プロジェクトにも対応できるように、動作速度に重点が置かれています。
Gitの最大の特徴は、「分散型」である点です。まず、ローカルPCの各ユーザのワーキングディレクトリに、「全履歴を含んだリポジトリの完全コピー」(ローカルリポジトリ)が作成されます。
リポジトリとは、ファイルやディレクトリの状態が記録される管理ファイルのようなものです。変更履歴を管理したいディレクトリをリポジトリの管理下に配置することで、そのディレクトリ内のファイルやディレクトリの変更履歴を記録することができます。
つまり、ネットワークに接続していない状態であっても、このローカルリポジトリに対して、コードの変更履歴保存(コミット)や、過去履歴確認などのほとんどの作業を行うことができます。これが「分散型」と呼ばれる理由となっています。
従来のバージョン管理ツールは、ネットワーク接続がほぼ必須であったため、この分散型のインパクトは大きいものがあります。
似たような名前で、「GitHub(ギットハブ)」というものがあります。GitHubは、このGitの仕組みを利用して、世界中のエンジニアが、プログラムコードやデザインデータなどを保存や公開できるようにしたウェブサービスです。
MicrosoftやGoogleのエンジニア達も使用していると言われています。OSSの公開などに使われることも多く、急拡大しています。
Gitについて近年では、高機能かつ高速という点で、世界での利用ユーザーが爆発的に増えていて、GitHubと合わせて「バージョン管理のデファクトスタンダード」になりつつあります。
「Ruby on Rails」をはじめとする世界中の数多くのOSSプロジェクトで利用されています。また、FacebookやAmazonなどの大手ネット関連企業も利用しています。
Gitのライセンスは「 the GNU General Public License version 2.0」です。
詳細について、こちらを参照ください。
→Git →About →Free and Open Source
同様な機能を提供する製品として、次のようなものがあります。
オープンソース製品:「Subversion」、「CVS」など。
Gitは、当初からスピードとパフォーマンスを最重要視して、高速かつスケーラブルになるよう開発されています。
ある調査では、従来のバージョン管理システムと比較して10倍~100倍高速に動作するという結果が出ています。
基本的なバージョン管理機能のほかに、コミット取り消し(ロールバック)、複数コミットを1つのコミットとして実行するなど、さまざまな機能を備えています。
また、集中型バージョン管理システム「Subversion」と連携できる機能も用意されています。
Gitに取り込まれるすべては、格納される前にチェックサムが取られ、その後、そのチェックサムで照合されるようになっています。
つまり、Gitに認知されずにファイルの変更を行うことは不可能となっていて、この機能はGitの哲学に不可欠なものになっています。
Git開発チームは、1月18日、 分散型バージョン管理システム「Git 2.16」を公開した。 【Gitとは】 分散型バージョン管理システム https://www.ossnews.jp/oss_info/Git 【2.16のポイント】 ・「git submodule」「git bisect」などのモジュールをCで書き直す作業 ・コード最適化 ・内部構造改善 ・Gitでの...