支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡

  • TOP
  •   
  • コラム
  •   
  • Github:リポジトリの概要とロー

最初に

Githubを活用する上で重要な「リポジトリ」。今回はリポジトリとは何かという基本的な説明から概要を理解しつつGithubをより活用するための第一歩として、ローカルリポジトリの作成方法と使用方法について解説していきます。

リポジトリとは

Githubの「リポジトリ」とは、作成したファイルやディレクトリの状態を保存・記録しておく「場所」のことを指します。そのため変更履歴などログ等を管理したいディレクトリがある場合はこのリポジトリの管理対象とすることで対象のディレクトリ内のファイル・ディレクトリは変更履歴を記録することが可能になります。

Github内でのリポジトリの種類

Githubのリポジトリには「リモートリポジトリ」と「ローカルリポジトリ」の二種類があります。リポジトリが二種類に分けられていることで、通常普段の作業をローカルリポジトリを使用してユーザー自身のマシン内で全て行うことが出来ます。そして作業を行った内容を他のユーザーと共有したい場合にはローカルリポジトリからリモートリポジトリに作業内容をアップロードすることによって共有することが出来ます。また逆に他のユーザーが公開している作業内容をリモートリポジトリを用いて取得することも可能となります。

リモートリポジトリ:専用のサーバーネットワークに配置し、サーバー内にいる複数のユーザー同士で共有するリポジトリです。
ローカルリポジトリ:他人と共有することはなく、自身のPC内に配置して使用するリポジトリです。

ワークツリーとインデックスについて

Github内で作業を行う際に使用するディレクトリのことを「ワークツリー」、そしてワークツリーとリポジトリの間にある、ワークツリー内に作成した作業ファイルをリポジトリでコミットを行うための準備を行う場所を「インデックス」と言います。つまりGithubではコミットを実行した際にワークツリーから直接リポジトリ内へ記録を行うのではなく、その間に設けてあるインデックスに状態を記録します。
インデックスを間に挟むことによって登録に不要なワークツリー内にあるファイルを除外した状態でコミットを行ったり、ファイルの特定の一部だけをインデックスに登録してコミット行うことが出来ます。

コミットとは

ファイルやディレクトリの追加や変更の記録をリポジトリへ保存するためには「コミット」という操作が必要になります。
コミットを行うことでリポジトリ内には前回コミットを行った状態から現在の状態までの差異を記録した「コミット」あるいは「リビジョン」と呼ばれるものが作成されます。この作成されるコミットは時系列順に繋がった状態でリポジトリに格納されていきます。その結果コミットをさかのぼっていけば過去の変更した記録とタイミング、その内容が把握できるようになっています。またこれらのコミットには、コミット内の情報からなる重複しない英数字40桁の名前が割り振られており、このコミット名を指定することで直接リポジトリ内のコミットを呼び出すことが出来ます。機能追加時やバグ修正時にこまめにコミットを行うことで後から特定の変更内容を検索する際に非常に効率よく作業が行なえます。
コミットを保存する際には必ずコミットメッセージの入力が必要になります。このコミットメッセージが未入力の場合はコミットの保存が失敗するため注意してください。

Githubでのコミットメッセージの保存形式例

1行目:コミットを行った時点での変更内容の概要

2行目:空行

3行目:変更を行った理由や原因

リポジトリを作成する

ローカルリポジトリを作成する方法には「リポジトリを新規作成する」方法と「リモートリポジトリをコピーして作成する」方法の二種類が存在します。

リポジトリを作成するにあたって「Git」をインストールしなければいけませんが、ここでは割愛致します。それではローカルリポジトリを新規作成していきます。ちなみに今回のOS環境はWindows、使用するGithubのバージョンは「Git for Windows 2.11.1」です。

まずはリポジトリ管理対象のディレクトリとなるフォルダとファイルを作成します。
「デスクトップ」に「test」フォルダを作成し、testフォルダ直下に「test.txt」ファイルを新規作成します。
次にWindowsスタートメニューより[すべてのアプリ]→[Git]→[Git Bash]と順に選択して「Git bash」起動します。

起動した「Git Bash」プロンプト内にローカルリポジトリを作成するコマンド「git init(ディレクトリ名)」を入力し、実行します。ディレクトリ名には先程作成したデスクトップの「test」フォルダを指定します。※ディレクトリ名を省略してコマンドを行った場合はカレントディレクトリにリポジトリを作成します。

コマンドを実行しログが表示されると、先程の「test」フォルダ内に「.git」というフォルダが作成されます。このフォルダ内にリポジトリに必要なファイルが格納されています。ただし、まだこの時点ではフォルダ内のファイルはリポジトリの管理対象ではありません。

管理対象ではない状態を確認するためにもステータスを確認するコマンド「git status」を「Git Bash」プロンプト内に入力して実行します。すると「Untracked files:~・・・」とログが表示され、これは[「test.txt」ファイルはまだリポジトリの管理対象にはなっていないため、「git add」コマンドを実行して管理対象と指定してください。]と表示されています。

「Git init(ディレクトリ名)」を実行し、Gitの初期化を行った「test」フォルダにローカルリポジトリの追跡処理を開始していきます。先程のGithubのインデックスを追加するコマンド[git add (ファイル名)]をプロンプトに入力し実行します。

実行後、ログが表示されて再度「git status」コマンドにてステータスを確認した際に「Changes to be committed:~・・・」と追跡対象に指定した「test.txt」が表示されていれば完了です。

リポジトリへファイルをコミットする

記録・追跡対象のファイルやフォルダをローカルリポジトリに追加(コミット)するには「git commit」コマンドを実行します。このコマンドを実行するとコミットメッセージを入力すためのテキストエディターが起動します。そこでコミットメッセージを入力してもいいのですが、今回は「-m」オプションを使用してメッセージを入力します。「git commit -m (コミットメッセージ)」でコミットの説明を追加することが出来ます。※先述の通りコミットメッセージを入力せずにコミットを実行しようとするとエラーが生じるため必ずメッセージを入力してください。

コミットを確認する

先の手順でコミットを実行した後、正しく追跡対象のファイルがコミットされているか「git status」コマンドでコミット状況を確認します。「nothing to commit, working tree clean」と表示されるとディレクトリ内にコミットするファイルやフォルダは無い状態になりましたと確認が出来ます。
次に正しくコミットの処理が行われたかの確認ではなく、コミットの履歴を確認する場合は「git log」コマンドを実行します。これを実行すると「git log」コマンド以下に[ファイル作者の名前とメールアドレス][更新日時][コミットメッセージ]がログとして表示されます。

さいごに

いかがでしょうか。ここまでGithubにおけるリポジトリの概要とそれに関係する用語説明、共有化を図るためのローカルリポジトリの作成手順をご説明させて頂きました。まだ、リポジトリの共有化やリモートリポジトリなど学習していくべき内容がありますが、今回は基礎も基礎である内容をご紹介させて頂きました。少しでもGithubリポジトリへの橋掛かりになれば幸いです。ここまで読んで頂きありがとうございました。