Gitは、分散型バージョン管理システムを意味します。簡単にいえば、ファイルのバージョンを管理するためのシステムのことです。Gitを使用せずにファイルを管理する場合、一般的にそのファイルを過去の特定の時点に戻すことはできません。例えば、パソコンにあるファイルを昨日の朝の状態に戻すことは難しいでしょう。しかし、Gitを使用すれば、バージョンで管理されているため、古いバージョンに戻すことが簡単にできてしまいます。
また、Gitは古いバージョンへ簡単に戻せるだけでなく、編集した履歴を複数人で共有することができたり、チームメンバーそれぞれで修正した部分をひとつに統合できたりするなどのメリットがあります。そのため、チーム開発はもちろんのこと、個人開発においてもGitは重宝されるシステムのひとつです。
Gitは非常に有名なシステムになるため、プログラミング初心者の中にも概要はぼんやりと理解できているという方も少なくないでしょう。しかし、Gitにはどのような基本機能が搭載されており、それぞれの機能で何ができるのか説明できないという方は意外に多いのではないでしょうか?
そこで、今回はGitの6つの基本機能について詳しく解説しますので、興味がある方は、ぜひ参考にしてみてください。
Gitとは何か
Gitとは何か?Gitを使うとどんなメリットがあるのか詳しく知りたい方は、こちらの記事も見てみましょう。
Gitの6つの基本機能
Gitの基本機能は下記の6つです。
- クローン
- フェッチ
- プル
- コミット
- プッシュ
- ブランチ
それぞれの機能の概要や具体的に何ができるのかについて詳しく解説します。
クローン
1つ目はクローンです。
クローンとは、Gitのリモートリポジトリを複製してローカルリポジトリを作成するコマンドのことです。簡単にいえば、自分のパソコン(ローカル環境)にリモートリポジトリをコピーする機能を意味します。ちなみに、リポジトリとはGithubでファイルやディレクトリを保存する場所のことです。GithubにログインしてCreate a new repositoryから作成することができます。
Githubからリポジトリをローカル環境にコピーすることで、クローンを作成することが可能です。ゲームの開発現場でも頻繁に利用する作業になるため、クローンの概要や何ができるのかについて必ず覚えておくようにしましょう。
ちなみに、クローンはフォークとしばしば比較されます。クローンは、リポジトリからローカルリポジトリに複製することを意味します。 一方、フォークは他人のリポジトリを派生させて、新たに自分のリモートリポジトリを作り出すことを意味します。
クローンはリモートリポジトリからローカルリポジトリを作り出します。フォークはリモートリポジトリからリモートリポジトリを作り出します。
どこに複製するのかで大きな違いがあるので、混合しないようにしましょう。
フェッチ
2つ目は、フェッチです。
フェッチとは、リモートリポジトリで更新された最新情報をローカルリポジトリに反映させることです。後述するプロと混合されることが多いですが、フェッチはリモートリポジトリに更新が必要ないかをチェックする際に使われる機能です。基本的にフェッチは、リモートリポジトリの内容を自動的にマージンすることはありません。リモートリポジトリの最新の履歴だけを取得する際に用います。
開発の際は、リモートリポジトリの内容を確認したいだけのときがあります。そのようなときにフェッチを使うことで、自動的にマージが行われないため便利です。
プル
3つ目は、プルです。
プルは、リモートリポジトリの変更をローカルリポジトリに反映させることを意味します。例えば、チームでプロジェクトを管理しており、開発者のAさんがローカルリポジトリをプッシュしたとします。そして、別の人がAさんの実装された機能を利用する場合、変更内容を自分のローカル環境に反映させなければなりません。そのようなときにプルを行います。リモートリポジトリの変更内容をローカルリポジトリに取り込むものと考えるとわかりやすいです。
コミット
4つ目はコミットです。
コミットは、ファイルの追加・変更の履歴をリポジトリに保存することを意味します。主な目的は、プロジェクトの変更を記録し、履歴を管理するために使われます。コミットを使用することで、ファイルを過去の状態へ簡単に戻すことができるので、共同作業を効率的に行うことができるようになります。
コミットをする際は、メッセージを入力するのが一般的です。メッセージを入力することで、変更内容などを開発メンバーがわかるので、非常に重要な要素になります。
プッシュ
4つ目はプッシュです。
プッシュは、ローカルリポジトリの変更をリモートリポジトリに反映させることです。ゲームなどを開発していると、機能を追加したり、既存の機能に変更を加えたりして作りたいものを実現していきます。つまり、作業をすればファイルが変更されるため、チーム開発の際はその変更をリモートリポジトリに反映させなければ、ほかのメンバーが変更内容を知ることができません。そのため、1日ごとなど作業を終えたら変更内容をプッシュしてリモートリポジトリに反映させるのが一般的です。
プッシュは、自分が変更したファイルをリモートリポジトリにアップロードすることと考えると理解しやすいかもしれません。
ブランチ
6つ目は、ブランチです。
ブランチは、コミットの流れをプロジェクト内で分岐させることで、プロジェクト全体に影響を与えることなく開発することができる機能です。Branchは木の枝や支流などを意味します。
Gitにおいてデフォルトのブランチがmainです。mainは基点となり、木の幹の部分といわれることが多いです。基本的に、プロジェクトの安定バージョンなどはmainに保存されます。そして、プログラムの修正や新しい機能を追加する際は、基点となるmainから新しいブランチを作成してそれぞれの担当者で作業を行います。このように、mainから分岐させて新しいブランチを作成することを『ブランチを切る』と表現することが多いです。
枝分かれしたブランチは任意のタイミングで合流させることもできます。
ブランチを利用することで、『プロジェクト全体に影響を与えずに機能の修正や追加ができる』、『ブランチを切れば目的に合わせて同時並列で作業が行える』、『エラーなどが発生した際に対応が容易』などのメリットがあります。
まとめ
今回は、Gitの基本機能を6つご紹介しました。ご紹介した基本機能はGitを活用する際に必ず使うことになるため、この機会に覚えておくのがおすすめです。また、『もっとGitについて詳しく学びたい』、『スムーズにGitの知識を身に付けたい』という方は、プログラミングスクールの利用を検討してみてはいかがでしょうか。