(Photo by:Steve Snodgrass)
はじめに
ファイルのバージョン管理をしていますか?「特に何もしていない」「単純にコピーして残している」といった方も多いのではないでしょうか?
バージョン管理をしっかりしていないと、どれが最新版かわからなくなってしまったり、他の人にファイルを上書きされてしまったりと、いろいろな問題が起こりがちです。そこで登場するのが、今回紹介するGitです。GitHubをはじめ、さまざまな場所で活用されているGit。今からでも遅くはありません。基礎知識だけでもおさえておきましょう。
この記事では、
- いまからバージョン管理を始めたい方
- 今使っているバージョン管理システムからGitに移行したい方
のために、Gitの概要と全体構造、基本的な作業の流れをお伝えしていきます。最近では、エンジニアの方だけでなく、デザイナーの方にも広まりつつあります。あなたなりの活用方法を見つけてみましょう。
Gitってなに?
Gitは、ファイルのバージョン管理をするための分散バージョン管理システムです。2005年にLinuxの父リーナス・トーバルズによって、Linuxのソースコードを管理するために開発されました。現在は、日本人の方によってメンテナンスされています。現在も活発に開発が続いており、毎月のように新バージョンがリリースされます。
Gitでは、ファイルの変更履歴が次々と記録されていき、どんどん履歴が増えていきます。そこから、最新のファイルを取得したり、過去のある時点でのファイルを取得したりできます。また、“分散”バージョン管理システムであるため、ネットワークにアクセスできないような状況でも作業を継続できます。もちろん、GitHubなどのサービスによりファイルを共有することも容易です。
Gitはどんな構造をしているの?
Gitでは、リポジトリという場所にファイルを保存します。リポジトリは、ファイルシステム上のディレクトリ構造を持ったファイル群です。直接操作するのではなく、Gitコマンド(CUIツール)を介してリポジトリとやり取りをします。たとえば、リポジトリを新規作成したり、ファイルを保存したり、などです。リポジトリにファイルが保存されるときには、古いファイルは上書きされず履歴として残ります。このため、常に最新のファイルが得られる一方、古いファイルにもアクセスできます。
リポジトリには、リモートリポジトリとローカルリポジトリの2種類があります。リモートリポジトリは、従来の中央リポジトリに相当するもので、主にユーザー間でファイルを共有するために使用されます。一方、ローカルリポジトリは自身が作業するためのリポジトリになります。ローカルで変更したリポジトリを、リモートリポジトリに反映させて共有する、といったイメージになります。複数のリポジトリが存在できることが、「分散」バージョン管理システムであるゆえんです。
Gitでの基本的な作業の流れ
ローカルリポジトリを新規作成する
はじめに、ローカルリポジトリを作成します。この空のリポジトリの中に、ファイルを追加していきます。なお、上でお伝えした通り、すべての操作はGitコマンドを使って行います。
ファイルをインデックスに追加する
次に、Gitで管理したいファイルをインデックスに追加します。インデックスとは、リポジトリに保存する前に、保存対象のファイルを一時的においておく領域のことです。インデックスがあることにより、複数のファイルをまとめて追加できます。この操作を「ステージング」と呼びます。
ファイルをローカルリポジトリに追加する
次に、インデックスに追加したファイルをローカルリポジトリに追加します。この操作を「コミット」と呼びます。コミットの際には、かならず「コメント」が必要です。どのような変更を加えたかなど、他のユーザーにもわかりやすいコメントを残しましょう。
リモートリポジトリの設定をする
ここまでは、ローカルリポジトリに対して変更を加えてきました。リポジトリを他のユーザーと共有しないのであれば、ローカルリポジトリのみで運用しても構いません。しかし、共有したいのであれば、リモートリポジトリを作る必要があります。そのためには、リモートリポジトリの設定が必要です。
リモートリポジトリは、通常インターネットやイントラネットなどのネットワーク上に配置されます。一般的には、GitHubなどのリポジトリ共有サービスが使われます。サービス内で新規リモートリポジトリの作った後に、そのアドレスをローカルリポジトリに対して設定します。
ローカルリポジトリの内容をリモートリポジトリに反映させる
リモートリポジトリの設定ができたら、ローカルリポジトリの内容を反映させます。この操作を「プッシュ」と呼びます。これで、他のユーザーとリポジトリを共有できるようになりました。以降は、「ファイルの追加・変更→ステージング→コミット→プッシュ」を繰り返すことになります。なお、複数のコミットをまとめてプッシュすることもできます。
リモートリポジトリの内容をコピーする
他のユーザーが参加する際には、リモートリポジトリをコピーして、ローカルリポジトリを作成します。リモートリポジトリのアドレスを指定するだけで、レポジトリのすべての内容がコピーされます。この操作を「クローン」と呼びます。これ以降は、「プル」という操作を行うことで、自分以外のユーザーが行った変更をローカルリポジトリに反映させることができます。なお、クローンしたローカルリポジトリには、リモートアドレス(リモートリポジトリのアドレス)がすでに設定されています。
まとめ
今や、モダンな開発にはGitは必要不可欠です。初めての方にはややとっつきづらいので、敬遠されている方も多いようです。しかし、理解してしまえばそれほど難しいものではありません。CUIの黒い画面が嫌なのであれば、Git GUIやSource Treeなどのビジュアルな画面ではじめてみましょう。思ったより簡単ですよ♪さあ、あなたもGitをはじめてみませんか?
【おすすめ記事】
エンジニア初心者向けに Git の導入から基本的な使い方までチュートリアル形式で解決したお勧め記事を紹介します。基本的な使い方を覚えた後は、チームでの共同開発・実践方法を学んでください。
本ブログは、Git / Subversionのクラウド型ホスティングサービス「tracpath(トラックパス)」を提供している株式会社オープングルーヴが運営しています。
エンタープライズ向け Git / Subversion 導入や DevOps による開発の効率化を検討している法人様必見!
「tracpath(トラックパス)」は、企業内の情報システム部門や、ソフトウェア開発・アプリケーション開発チームに対して、開発の効率化を支援し、品質向上を実現します。
さらに、システム運用の効率化・自動化支援サービスも提供しています。
”つくる情熱を支えるサービス”を提供し、まるで専属のインフラエンジニアのように、あなたのチームを支えていきます。
No Comments