【Git入門】入門者向けに使い方を解説!GitとGitHubの違いとは?ダウンロード、インストール方法も紹介!
SE入門者向けにGitを解説
SEは専門性が高い職業で、必要な知識や用語が数多くあることで知られています。
今回はこれからSEを目指すという人や、SEになったばかりという初心者に向けてGitを解説していきましょう。
混同されやすいGitHubも紹介します。
GitはSEであれば知っておきたい便利なツールの一つです。しっかりと理解し、使いこなせるようにしておきましょう。
Gitとは何か?
分散型バージョン管理システムの一つ
Gitは分散型バージョン管理システムのことを指します。
その名の通り、Linuxのカーネルのソースコードの管理を効率的に進めるために開発されたものです。
複数人でバージョンの管理をするためのツールで、複数人が同時に作業しても不具合が起こらないように設計されています。
Linuxのような規模の大きいプロジェクトを想定して作られているのです。
ソースコードの管理のためのファイルの抽出やリポジトリ操作の高速化など、作業速度に重点を置いています。
バージョン管理システムの特徴
そもそも、バージョン管理システムにはどんなものがあるのでしょうか。
- 分散型バージョン管理システム
- 集中バージョン管理システム
上記2つが該当します。
分散型バージョン管理システムは、その名の通り分散させてバージョンを管理するという仕組みです。
リポジトリを複数持つことが出来るので、ソースコードの管理を開発の規模に合わせてすることが可能になりました。
リポジトリを複数持つことができ、作業を分散させる事が出来るという点から「分散型バージョン管理システム」という名前がつけられています。
リモートリポジトリをサーバ上に置き、開発者一人一人がローカルにリポジトリを持つということも可能です。
普段は自分が持っているローカルリポジトリを使って作業し、ちょうど良いタイミングでリモートに反映させるという使い方ができます。
リモートリポジトリにアクセスできない環境でも作業を進めることができるので、作業環境を選ぶ必要がありません。
集中バージョン管理システムは、分散型バージョン管理システムとの大きな違いは、1つのリポジトリを使用するという点です。
ソフトウェアの開発メンバーは、マスターと呼ばれる中央リポジトリのみからソースコードの編集ができます。
編集後に直接反映するという方法で管理や更新を行います。
リポジトリがあるサーバに接続できない場合、最新のソースコードの取得やファイルを編集した際の反映が出来ません。
作業環境を整える必要があるため、最近では分散型バージョン管理システムに移行する会社も増えてきています。
Gitを使用するメリット
Gitを使用するメリットは大きく分けて4つあります。
- 分散型である
- リリースを頻繁に行うことができる
- 開発メンバーを増やしやすい
- オフラインでも作業可能
Gitのメリットは分散型であるという点です。
Gitの特徴でも記述した通り、複数のリポジトリを持つことができるので、作業効率の向上に繋がります。
複数あるバージョン管理システムの中で、Gitが選ばれる最大の理由ともいえるでしょう。
分散開発によって、コードレビューなどもスムーズに行うことが可能になります。
そのため、リリースまでにかかる時間が少なくなります。
リリースを頻繁に行うことができるというのは、開発者にとってもかなりのメリットです。
プロジェクトに開発メンバーとしてスタッフが増員される場合、必ずシステムに精通している人が配置されるとは限りません。
そういった場合、機能別に細かく分かれていることで作業の配置がしやすくなります。
全容を理解することなく、即戦力として作業を開始してもらうことが可能です。
作業を小分けにすることでミスが減流だけでなく、どの作業でミスが起きたのかをすぐに知ることが出来ます。
また、集中バージョン管理システムとは違いオフラインで作業をすることも可能です。
自分が作業した内容をマスターのリポジトリに反映させる時にだけ、オンラインの環境が必要になります。
ネット環境のない場所での作業も可能なので、環境を整えるためのコストカットにも繋がります。
Git を使用するために必要な用語
Gitを使用する際に知っておきたい重要な用語があります。中でも特に重要なものをいくつか見てみましょう。
知らないものがあったという人は、ここでチェックしておいてください。
リポジトリ
リポジトリとは保管場所や貯蔵庫を指す言葉です。
Gitでのリポジトリは、バージョン変更の履歴やファイルを置いておく場所という意味になります。
ローカルやリモートなど様々なリポジトリがあるのです。IT用語としてもよく使用されるものなので覚えておきましょう。
ローカルリポジトリとリモートリポジトリ
Gitは分散型バージョン管理システムなので、作業環境を変える事なく、個人のローカルPCでの作業が可能です。
ローカルで作業したデータの保管場所をローカルリポジトリと呼びます。
ローカルリポジトリのみの保管だと、誤って消してしまった際にデータの復旧ができない恐れがあるのです。
そのため、ローカルで行った作業をサーバ上のリモートリポジトリに自動で保存します。
復旧できなかったなどというトラブルや、誤ってデータが消失してしまったというミスを未然に防いでくれるのです。
この仕組みをリモートリポジトリと呼びます。
リモートリポジトリは、ローカルリポジトリを自動でバックアップしておいてくれる仕組みのようなイメージです。
作業内容を失ってしまうことのないようにコピーをしておいてくれる、ありがたい仕組みといえます。
ブランチ
作業する際は通常、作業対象と全く同じフォルダ・ファイル構造を作り、コピーを作成します。
全く同じ環境をコピーしたものがブランチです。
ブランチを作成することで、作業対象と全く同じ環境で作業することが可能になります。
基本的には、初めにブランチを切って各々作業するというケースがほとんどです。
作業対象と同じ環境を作れるので、複数人で作業するのに便利なものとなります。
大人数のプロジェクトになるほどブランチの数はかなり多くなるもの。
ブランチを切ることで他の方の作業の影響や、他の方と同時に同じ箇所の作業が発生します。
自分の更新データが消えてしまったり、上書きされてしまったというトラブルを未然に防ぐことが可能です。
ブランチを作成する際は、「ブランチを作る」ではなく「ブランチを切る」と表現します。
また、ブランチを切ったものをマージ(合流)させることも可能。
マージさせることで、バラバラに作業したものも綺麗にまとめることができます。
ブランチやマージはよく使用される用語ではあるものの、他の職業ではあまり見かけない言葉です。
どちらもSE特有の特殊な使い方になるので覚えておきましょう。
コミット
ディレクトリやファイルをリポジトリに登録することをコミットと呼びます。
誰がどこで変更したのか・何を変更したのかという内容をコミットしておきましょう。
いつでも確認することが可能になります。
またコミットしておくことで、過去のファイルをリポジトリから取得することも出来ますね。
リビジョン
コミットで作成された変更履歴の一つ一つを指すものです。コミットや変更履歴と意味合いは似ています。
しかし、言葉の意味が狭いのでより明確に相手に伝えることが出来、解釈にズレが起きにくくなるのです。
英語で「改訂版」や「改訂」を意味します。
インデックス
コミットしたいファイル、もしくはファイルの一部を登録するところがインデックスです。
変更点を記録してくれているので、どの箇所を変更したのかを知りたい時に重宝します。
プッシュ
プッシュとは、ローカルリポジトリの内容をリモートリポジトリや他のリポジトリに送信し、取り込ませる操作のことを指します。
作業の途中やひと段落ついたタイミングで、自分のリポジトリの内容を共有しているリポジトリに取り込ませることが可能です。
その際に行う工程がプッシュという操作になります。共有しているリポジトリに自分が作業したものを反映させる重要な工程の一つ。
プル
他のリポジトリの更新箇所を自分のリポジトリに取り込むための操作のことをプルと呼びます。
他の人がプロジェクトで共有しているリポジトリにプッシュ。
その内容をリモートリポジトリから、自分のローカルリポジトリに取り込むという工程です。
その取り込む工程がプルとなります。
プルは、自分が持っているローカルリポジトリを常に最新の状態にしておくための重要な作業になるので覚えておきましょう。
Git の使い方を解説
登録
まずはGitを使用するためのサービスに登録するところから作業は始まります。
Gitを使用することができるサイトの中で、ブラウザ上で作業可能な「GitHub」がおすすめです。
無料プランと有料プランがあるので必要に応じて選択しましょう。
一部のサービス以外は無料で使用できるのでとても便利ですね。
リモートリポジトリ・ローカルリポジトリの作成
登録が完了したらリモートリポジトリとローカルリポジトリの作成に入ります。
作業の更新や確認を安全に行うために必要な作業になるため、アカウント登録後に一番初めに作成してください。
リポジトリの更新
ある程度作業が進んだら、リポジトリを更新しましょう。作業内容を最新にするための重要な工程です。
複数人作業員がいる場合、ローカルリポジトリをリモートリポジトリに更新します。
これで他の作業員の作業データにも、最新の状態を反映させることが可能になるのです。
GitHubとは何か?
Gitはバージョン管理システムの仕組みのことを指します。一方GitHubは、Gitの仕組みを使っているサービス。
GitHubはソフトウェア開発用のプラットフォームです。
要するに、ソフトウェアを開発するためのコードを管理してくれます。
コードのバージョン管理にGitが使用されているのです。
Gitを使用したサービスはGitHubの他にもいくつかあり、BitBucketやGitBucketなど様々。
中でも特に人気があり、多くの方が使用しているのが今回紹介するGitHubというサービスになります。
GitHubのアカウント登録
公式サイトにアクセスし、アカウントの登録を完了させましょう。
工程はかなり少なく、誰でも簡単に登録が完了します。
- ユーザー名
- パスワード
を入力。パスワードは7文字以上で作成しておいてください。
「Sign up for GitHub」をクリックして次のステップへ。
その後、メールアドレスの入力、確認を行えば基本的な登録作業は完了します。
登録に必要な工程はかなり少なく、初めて使用するという人も安心ですね。
登録後は無料か有料かを選択し、有料の場合はクレジットカード情報の登録も行いましょう。
GitHub のダウンロード
インストーラーのダウンロードを公式サイトより行うことが出来ます。 インストールをするためにも事前のダウンロードが必須です。
downloadボタンを押すと自動的にダウンロードが開始されます。
例として、Windows版は以下のURLからダウンロード可能です。
https://git-for-windows.github.io/
GitHubのインストール
GitHubのダウンロードが終わると、ダウンロードフォルダに最新バージョンのインストーラーが格納されます。
GitHubを使用する際は必ずダウンロードをし、その後インストールをするという流れです。
いきなりインストールは出来ないので注意してください。
ダウンロードされたインストーラーをダブルクリックすると、インストーラーが起動します。
起動したインストーラーに説明や確認情報が表示されるので、問題がなければNEXTで進めていきましょう。
最後に「Setup – Completing the Git Setup Wizard」という画面が表示されれば、インストールは完了となります。
ここまでの作業を終えれば、GitHubの使用が可能となるのです。
GitHubの意外な使い方
GitHubには意外な使い方がいくつかあります。GitHubの使用を考えている方は参考にしてください。
アクセス数の確認が可能
GitHubにはアクセス数の確認やアクセスの解析機能が搭載されています。
リポジトリのPV数や参照元ページ、ユニークユーザー数、よく見られているページの情報を確認することが可能です。
この機能を使用することでいくつかのメリットが生まれます。
- どういった場所で使用されているのかを知ることができる
- 特定ファイルのダウンロード状況の確認
- 閲覧数を知ることで消すかどうかの判断が可能に
自分のページの需要を知ることができるので、かなり便利になります。
GitHubを違った角度から見ることが出来る面白い機能です。
SNS機能が搭載
Github は SNSとしての使用も可能で、 自分以外のユーザーとコミュニケーションを取ることが出来ます。
ユーザ同士がコミュニケーションを取る主な方法は4つです。
- Issues
- Pull Request
- watch機能
- コミットへのコメント
があります。
Issuesは問題が発生した際に書き込むところで掲示板のような用途での使用が可能です。
リポジトリのトップから新しい掲示板を作成することもできます。
また、Pull Requestは製作者に新しい提案をするための機能です。
面白いものや有用なものは開発者が採用し、取り込んでくれる可能性もあります。
Watch機能はWatchに登録した相手の様子や、更新情報を知ることができる機能です。
さらに、Githubではコミットに対してコメントをすることができます。
また、コミットに関連しているファイルの特定の行にもコメントを付けることが可能。
他者にどの部分を指すコメントなのかを伝えやすくかなり便利です。
コミットにコメントをつけるためにはコミットを見つける必要があります。
一般的な方法としては 「コミットの一覧」 から「コミット」と進めばコミットのページへいけるのです。
そこからコメントを追加していきましょう。
まとめ
GitもGitHubも、SEを目指す人であれば知っておきたい便利なサービスです。
複数人で行うプロジェクトの際にかなり重宝します。
あまりよく知らなかったという方はしっかり押さえておきましょう。