SourceForge.JP: Open Source Software

LoginCreate AccountHelp

[RSS]OpenSource Downloads

(11,563) Cabos
(2,276) 7-Zip
(1,935) HandBrake Japanese Language Version
(1,753) Tera Term
(1,270) CrystalDiskInfo
(868) Tween - client software of Twitter
(681) ffdshow
(636) ギコナビ
(626) CrystalDiskMark
10  (624) Amateras
11  (601) VirtualDubMod-jp
12  (462) MergeDoc
13  (386) NNDD - ニコニコ動画DL&再生ソフト
14  (376) WordPress Plugins/JSeries
15  (376) えこでこツール
More >>

最近ブックマークされた記事

Magazine 最新特集記事

オープンソースソフトウェアで強化するWindowsデスクトップ

 「オープンソースソフトウェア」というと、Linux/UNIXの世界が中心というイメージがあるかもしれない。しかし、現在ではWindows向けのオープンソースソフトウェアも多数公開されている。そこで本特集では、システムカスタマイズツールやマルチメディア関連ソフトウェア、バックアップツールなど、有用なWindows向けオープンソースソフトウェアを紹介していく。

大幅なスペックアップで生まれ変わった超小型Linuxサーバー「OpenBlockS 600」徹底活用

 超小型のLinuxサーバーとして有名な「OpenBlockS」に、大幅なスペックアップが施された新モデル「OpenBlockS 600」が登場した。そこでOpenBlockS 600の仕様を紹介するとともに、ルータ・ブリッジとしての利用やネットワークの管理・監視への利用など、実運用に向けての利用例やセットアップ例を解説する。

発毛

分散バージョン管理システムGit入門

2009年02月06日 12:01PM 1 2 3 4 5
  • スラッシュドットにタレコむ
  • あとで読む

 バージョン管理システムと言うとSubversionやCVSが有名だが、近年急速にユーザーを増やしているバージョン管理システムに「Git」がある。GitはLinuxカーネルの開発リーダーとして知られるLinus Torvalds氏が中心となって、Linuxカーネルの開発に使用する目的で開発した分散型バージョン管理システムである。2005年に開発が開始されて以来さまざまなプロジェクトでの採用が進み、現在ではPerl 5やRuby on Rails、Android、Wine、X.orgなど、有名な大規模プロジェクトで採用されるに至っている。

 本記事では、このGitを使用するのに必要な「分散型バージョン管理システム」の基本的な考え方を紹介するとともに、Gitの導入方法や基本的なGitの使い方について解説する。

分散バージョン管理システムとは?

 GitはLinuxカーネル開発で用いられることを前提に開発されており、次のような特徴を備えている。

  • 開発者各自がローカルにリポジトリを持つ「分散型」アーキテクチャを採用
  • 高速かつ柔軟にブランチの作成やマージが可能
  • Linuxカーネルのような巨大なプロジェクトでも十分な速度で動作
  • 変更履歴とともにそのハッシュも保存され、これを検証することで改竄を検出できる
  • 主要部分はCで書かれており、各種スクリプト言語から利用できるラッパーも用意されている
  • 独自プロトコルのほかWebDAVやrsync、ssh経由でリモートのリポジトリにアクセスできる

 この中でもGitの大きな特徴となっているのが「分散型」という点だ。Gitはプロジェクトに関わる各開発者がそれぞれローカルにリポジトリを持ち、必要に応じてリポジトリ間で変更点をやりとりすることによってソースコードなどの管理を行う(図1)。いっぽう、バージョン管理システムとして有名なSubversionやCVSは、1つのリポジトリにすべての開発者がアクセスする「集中型」と呼ばれるアーキテクチャを採用している(図2)。

図1 各開発者がリポジトリを持つ分散型バージョン管理システム
図1 各開発者がリポジトリを持つ分散型バージョン管理システム


図2 1つのリポジトリにすべての開発者がアクセスする集中型バージョン管理システム
図2 1つのリポジトリにすべての開発者がアクセスする集中型バージョン管理システム

お詫びと訂正

 記事掲載当初、Gitの特徴の1つとして「変更履歴は暗号化されて保存され、改竄ができない」としていましたがこちらは誤りで、実際は変更履歴自体を暗号化して保存しているわけではなく、そのハッシュを保持することで変更履歴の整合性を検出できる、ということでした。また、これに加えてGPG署名を利用することでさらに堅牢にすることも可能です。お詫びして訂正いたします。ご指摘をいただき、ありがとうございました。

松島浩道
2009年11月30日 02:40PM 更新