「Git」は、世界で最も広く使用されている現代的なバージョン管理システムだ。ユーザーや開発者はこのツールを使用して、ローカルマシン/ネットワーク上で、またはパブリックサーバー経由で共同作業ができる。開発者はGitを定番の共同作業ツールと考えるべきだ。
また、gitコマンドはGitHub(リモートリポジトリーホスティング用の世界有数のgitリポジトリーコード)とシームレスに連携するが、公開サービスを使用する必要はない。むしろ、Gitは単一のマシン上で、あるいは自社のプライベートネットワーク上のGitサーバー経由で簡単に使用できる。いずれの場合も、コードやあらゆる種類のファイルでの共同作業が飛躍的に容易になる。
このGit入門記事では、同バージョン管理システムについて知っておくべきことを簡潔に説明する。
概要
- どんなものなのか:個人やチームがローカルまたはリモートのリポジトリーで同じコードを使って共同作業ができるバージョン管理システムだ。Gitはプログラマーだけのものではない。ユーザーはファイルをチェックアウトし、変更して、再度チェックインできる。このバージョン管理システムでは、あらゆるドキュメントの共同作業が可能だ。Gitはテキストベースのターミナルウィンドウから使用できるほか、多数のGUI Gitクライアントのいずれかからも使用できる。GitはLinux上のソースからアプリケーションをインストールするときにも便利だ。
- なぜ開発者に好まれるのか:共同作業がこれほど容易になるツールは他にほとんどなく、Gitは世界中の開発者にとって事実上の標準になっている。Gitを使った共同作業では、複数のユーザーが同じファイルを編集する際によく起きる混乱を回避できる。これらすべてが、Gitによってシームレスかつ容易になる。
- 誰が使用すべきなのか:Gitは、あらゆる種類の共同作業者や、Linuxへのアプリケーションのインストールを検討している人が利用できる。
- いつリリースされたのか:GitはLinus Torvalds氏によって開発され、米国時間2005年4月7日に最初にリリースされた。本稿執筆時点での安定版である2.30.1は、2021年2月8日にリリースされた。
- どうすればインストールして使用できるのか:標準のLinuxリポジトリーからインストールできる。「Windows」「macOS」に、それぞれのインストーラーを使用してインストールすることも可能だ。
どんなものなのか
Gitは、ファイルの変更を追跡して、多数の人とそれらのファイルで共同作業ができるバージョン管理システムだ。Linus Torvalds氏が、Linuxカーネルの開発作業の管理を支援するために開発した。Torvalds氏は「BitKeeper」や「Monotone」から着想を得た。最初のリリースは2005年4月7日で、それ以来、Gitの開発作業は着実に進んでいる。
gitコマンドは、主に開発者がコンピューターのソースコードを管理するために使用しているが、あらゆるファイルタイプの変更を追跡するのに利用可能だ。また、LinuxユーザーはGitを使用してソースコードをホスティングウェブサイトから簡単にプルダウンし、ローカルマシンにインストールできる。
Gitは分散リビジョン管理システムとして知られており、標準的なバージョン管理システムで使われる差分ではなく、スナップショットを使用する。データはファイルベースの変更のリストとして保存されるのではなく、小型のファイルシステム内の一連のスナップショットとして保存される。Git内のファイルに対してコミットが実行されると、すぐにGitがスナップショットを作成し、そのスナップショットへの参照を保存する。そのため、システムがより軽量になり、ファイルとコードをマージするプロセスが大幅に容易になる。
すべてのコンピューター上のすべてのGitディレクトリーは、ネットワークアクセスや中央のサーバーに依存せず、あらゆる履歴とバージョンを追跡できる完全なリポジトリーだ。これは、単一のマシンを完全なGitリポジトリーとして使用できることを意味する。GitはGitHubとシームレスに連携して、ユーザーリポジトリー内での効率的なグローバルコラボレーションの手段を提供する。
Gitリポジトリーから、ファイルをプルダウンして、ファイルへの変更をコミットし、ファイルをリポジトリーにプッシュバックできるほか、さらに2つのファイルの履歴をマージすることもできる。Gitはターミナルウィンドウ内や、多数のGUIツールのいずれかから使用できる。人気のGUIには、「GitKraken」「SmartGit」「Git Extensions」「Sourcetree」「Tower」「Git Cola」「GitUp」「TortoiseGit」「GitHub Desktop」などがある。
Gitには以下のような特徴がある。
- クロスプラットフォーム(GitはすべてのOSと互換性がある)
- 非線形の分散開発が可能
- ブランチング
- 小さいフットプリント
- 非常に高速
- オープンソース
- 優れた安全性
- ステージングエリア
- 複数のワークフロー
- 履歴追跡
- 自動バックアップ
- スケーラビリティー
- 共同作業が容易
- Gitアーカイブでは.tar.gz出力の圧縮レベルを9より上に設定可能