Git(ギット)とは、オープンソース分散型バージョン管理システムです。プログラムソースコード/設定ファイル/サイトコンテンツなどの変更履歴を記録/追跡管理します。
コンピュータ上で作成/編集されるファイルの変更履歴を管理するためのシステムです。特にソフトウェア開発におけるソースコードの変更履歴管理として多く用いられます。
管理対象ファイルの「作成/変更日時」「作成/変更ユーザ」「変更点」などの履歴を保管/管理することにあります。
多くのバージョン管理システムでは、複数の人間がファイル編集に関わる状況を想定しています。
バージョン管理システムを使用しない環境では、ファイル(1)について、編集者(A)が作業中に、編集者(B)が編集して、その後、編集者(A)が確定すると、編集者(B)の編集内容が消失してしまいます。
バージョン管理システムを使用すれば、このような同一ファイルに対する競合の発生を防ぐことができます。
ソフトウェア開発において、バージョン管理システムは必要不可欠な存在となっています。
「Git」に似たような名前として「GitHub(ギットハブ)」というものがあります。
GitHubは、Gitの仕組みを利用して、世界中のエンジニアが、プログラムコード/デザインデータなどを保存/公開できるようにしたWebサービスです。
Microsoft/Googleのエンジニア達も使用しているといわれています。オープンソースソフトウェアの公開などに使われることも多く、急拡大しています。「バージョン管理といえばGitHub」といわれるほどのデファクトスタンダードになりつつあります。
Gitの最大の特徴は「分散型」という点にあります。ローカルPCの各ユーザのワーキングディレクトリに、「全履歴を含んだリポジトリの完全コピー」(ローカルリポジトリ)が作成されます。リポジトリとは、ファイル/ディレクトリ状態が記録される管理ファイルです。
変更履歴管理したいディレクトリを、リポジトリディレクトリの下に配置すれば、そのディレクトリ内のファイル/ディレクトリの変更履歴を記録できます。
ネットワークに接続していない状態であっても、このローカルリポジトリに対して、コード変更履歴保存(コミット)、過去履歴確認などのほとんどの作業を行うことができます。
従来の多くのバージョン管理ツールは、ネットワーク接続が必須であったため、Gitの登場は大きなインパクトを与えました。
Gitは、Linuxカーネルの生みの親「Linus Torvalds」氏が、Linuxカーネルの巨大プロジェクトにおいて、ソースコードを効率良く管理するために開発したものです。巨大プロジェクトにも対応できるように、高速性/スケーラブルに重点が置かれて開発されています。
ある調査において、従来のバージョン管理システムと比較して10倍~100倍高速に動作するという結果が出ています。
基本的なバージョン管理機能のほかに、「コミット取り消し(ロールバック)」「複数コミットを1つのコミットとして実行」など、さまざまな機能を備えています。
管理対象のファイル/ディレクトリに対して、チェックサムでの照合が行われるため、すべての変更情報を漏らさず管理できます。
今回は、Gitの概要について紹介しました。
Gitは、バージョン管理の標準となりつつあるため、理解しておいて損はないオープンソースツールです。
次回以降では、具体的な使用方法などについて紹介していきます。
Git開発チームは、1月18日、 分散型バージョン管理システム「Git 2.16」を公開した。 【Gitとは】 分散型バージョン管理システム https://www.ossnews.jp/oss_info/Git 【2.16のポイント】 ・「git submodule」「git bisect」などのモジュールをCで書き直す作業 ・コード最適化 ・内部構造改善 ・Gitでの...
OSS×Cloud ACCESS RANKING