概要
Git(ギット)は、コンピュータ上のファイルやディレクトリの変更履歴を記録し、管理するための分散型バージョン管理システムである。
元々は Linux カーネルのソースコード管理のためにリーナス・トーバルズによって開発され、現在では世界中のソフトウェア開発プロジェクトで最も広く利用されているバージョン管理システムとなっている。
主な特徴
- 分散型バージョン管理: 各開発者のローカルマシンに完全なリポジトリ(変更履歴を含むデータベース)のコピーが保存される。これにより、オフライン環境でも作業が可能であり、中央サーバーに障害が発生してもリポジトリの復旧が容易である。
- 高速な処理: ほとんどの操作がローカルで完結するため、非常に高速に動作する。
- 柔軟なブランチモデル:「ブランチ」を容易に作成・統合できるため、機能追加やバグ修正といった作業を本流(master/main ブランチ)から隔離して安全に行うことができる。この「ブランチを切る」という考え方は、現代的なソフトウェア開発フローの中核となっている。
- データの完全性: リポジトリ内のすべてのオブジェクトは、チェックサム(SHA-1 ハッシュ)によって管理されており、ファイルや変更履歴が意図せず破損することを防ぐ仕組みが備わっている。
基本的なコマンド
Git の操作は、主にコマンドラインツールを通じて行われる。以下は、日常的に使われる基本的なコマンドの例である。
git init: 新しい Git リポジトリを作成する。git clone: 既存のリポジトリをローカルに複製する。git add: ファイルの変更をステージングエリアに追加する。コミットの対象となる変更を選択する操作。git commit: ステージングエリアにある変更を、メッセージを付けてローカルリポジトリに記録する。git push: ローカルリポジトリの変更をリモートリポジトリ(GitHub など)にアップロードする。git pull: リモートリポジトリの最新の変更をローカルリポジトリにダウンロードし、統合する。git branch: ブランチの一覧表示や作成、削除を行う。git checkout/git switch: 作業するブランチを切り替える。git merge: あるブランチの変更を別のブランチに取り込む。
利用シーン
- ソフトウェア開発: プログラムのソースコードのバージョン管理に最も広く利用される。
- ドキュメント管理: 複数人での仕様書やマニュアルの共同編集と変更履歴の管理。
- ウェブサイト制作: Static Site Generator と組み合わせ、ウェブサイトのコンテンツやテンプレートの管理。GitHub Pages はその代表的な例である。
- 個人の設定ファイルの管理: いわゆる「dotfiles」を Git で管理し、複数の環境で設定を同期する。