GitHubとは-後編 用語解説と使い方をご紹介【初心者向け】

メモを取っている男性 雑記
スポンサーリンク

GitHubの使い方

前編では、そもそもGitとはどういったものなのかの説明から導入方法までをご紹介しました。

GitHubとは-前編 概要と導入方法をご紹介【初心者向け】
Gitとは?GitHubとは? テックアカデミーの「webデザインコース」で学びはじめたwebプログラミン初心者です。 今回はGithubについて学習しましたのでアウトプットを目的に記事を書きました。前編の今回は、GitとGitHubの違いや、概要、導入方法までをご紹介してい...

後編の今回は、基礎用語やコマンドの説明、具体的な使い方を紹介していきます。
私自身Gitについて学び始めたばかりで、アウトプットのため書いておりますので、その点ご留意ください。

GitHubを使う上での用語解説・前提知識

今回GitHubの使い方を紹介していきますが、その前にこの後の解説がわかりやすくなるために、前提知識や用語の解説から始めます。

Gitの基礎用語

まずは用語の解説を行います。

用語 内容
リポジトリ(repository) データなどを保存する場所
リモートリポジトリ(remote repository) GitHub上のデータを保存している場所で複数人で共有される
ローカルリポジトリ
(local repository)
自身のPCなどローカル上のデータを保存している場所
インデックス(index) ファイルを編集した際の変更内容のみを記録し登録する一時的な場所
コミット(commit) ファイルを編集した際の変更内容とファイルをローカルリポジトリに登録すること
クローン(clone) リモートリポジトリのデータをローカルリポジトリに全てダウンロードすること
プル(pull) リモートリポジトリのデータで持っていないもののみローカルリポジトリにダウンロードすること
プッシュ(push) ローカルリポジトリのデータをリモートリポジトリにアップロードすること
コンフリクト(conflict) プッシュやプルの際に同じものを編集していて競合すること
フェッチ(fetch) リモートリポジトリに更新がないかを確認する
ブランチ(branch) 全く同じフォルダ、ファイル構造をコピーしコピー元と同じ環境を作る
マージ(merge) ブランチ同士を結合し変更内容を反映する

GitHubを使う上での前提知識

次に先述した用語について、より詳しく体系的、対比的に解説していきます。
これを読めばGitHubがどういったものなのか、何となくわかってくると思います。

ローカルリポジトリとリモートリポジトリ

変更履歴を管理したいディレクトリなどをリポジトリの管理下に置くことで、そのディレクトリ内のファイルなどの変更履歴を記録することができます。
リポジトリは、自分のPCやCloud9上にある「ローカルリポジトリ」と、サーバなどネットワーク上にある「リモートリポジトリ」の2箇所にあります。基本的にローカルリポジトリで作業を行い、その作業内容をリモートレポジトリへ反映させます。

コミットとワークツリー

1つ1つのバージョンのことを、コミットと呼びます。また、コミットを作成することをコミットするとも言います。
コミットには様々な情報が入っており、特に下記が重要です。

  • リビジョン
    コミットのバージョン番号のことでコミットを一意に指定できるIDのようなものです。
  • コミットした人や日時
    これのおかげで、誰がいつコミットを行ったのかいつでも確認できます。
  • コミットしたときのファイル内容
    これのおかげで、ファイルを元に戻したい場合やどんな変更をしたのかを後から確認できます。
  • コミットメッセージ
    コミットするときに必須で、どういった変更をしたのかを簡単なメッセージにまとめて書きます。
  • 1つ前のコミットのリビジョン
    リポジトリ内で1つ1つのコミットが1つ前のコミットのリビジョンを持っているため、自身がどのコミットから作られたコミットなのかわかり、変更履歴をツリー状に管理できます。そこから、Gitでバージョン管理されているフォルダ内のことをワークツリーと呼びます。ファイルに変更を加えるとワークツリーに変更が反映されます。

インデックス

ローカルリポジトリにコミットするには、まずどのファイルを次のコミットに含めるかを選ぶ必要があります。つまりワークツリーにファイルを作っただけではコミットできず、その前にインデックスというエリアにファイルを登録しなければなりません。このことをインデックスする、またはステージすると言います。インデックスに登録されているファイルをローカルリポジトリに登録します。

ブランチ

1つのプロジェクトから分岐させることにより、プロジェクト本体に影響を与えずに開発を行える機能のことを言います。「木の枝」という通り、現行のバージョンのプロジェクトから枝分かれさせて他の作業を行うときに使います。
安定したバージョンを「Masterブランチ」と呼び、プログラムの修正や機能の追加を行うときにブランチを追加し(ブランチを切る)、それぞれのブランチで作業を行います。分岐したブランチの内容は、他のブランチに影響がなく、同時平行で作業を行うことができます。

GitHub初心者がまず覚えたい基本的な流れを解説します

ここからは、GitHubでのバージョン管理の一通りの流れ、pushコマンドでアップロードするまでを解説します。初心者の方もまずここから学習していくと良いと思います。
前編で、GitHubのアカウント作成、リモートリポジトリ作成までは終わりました。ここからは、AWSのCloud9をローカルにして以降の流れを紹介していきます。

ローカルリポジトリを作成し、ファイルを登録する

任意の場所にディレクトリを作成します。今回は「/User/environment/tutorial」をGitのバージョン管理下に置きます。

$ mkdir tutorial
$ cd tutorial

次に、「git init」コマンドを使って、リポジトリを作成しGitのバージョン管理下に置きます。

$ git init

こうすることで、「tutorial/」以下にあるファイルはGitでバージョン管理することができるようになります。
Gitのバージョン管理ができるようになった「tutorial/」以下にファイルを作成していきます。
ここで一度現在の状況を確認します。「git status」コマンドを使います。

$ git status

GitHubバージョン管理の流れ

「Untracked files:index.html」とありますが、これは未追跡ファイルで、このままではバージョン管理の対象にはなってないということを表しています。
そこで、「git add」コマンドでファイルをインデックスに追加します。インデックスに追加することでGitで管理する対象のファイルになります。

$ git add index.html
$ git status

GitHubバージョン管理の流れ

緑色で「index.html」が表示されました。これは次のコミットに「index.html」を含めるということを示しています。
ちなみに、ファイル名の代わりに「.」を入力すると、新規追加や変更されたファイル全てをステージさせることができます。

$ git add .

コミットする

コミット、つまりバージョンを作るために「git commit」コマンドを使用します。

$ git commit

すると、Cloud9標準エディタのnanoが起動します。ここで「first commit」とメッセージを書いて閉じます。これで1つ目のコミットを作成することができました。
この時、「-m」オプションを使用すると、nanoを立ち上げずに直接メッセージを入力できます。

$ git commit -m "first commit"

現在の状況を「git status」コマンドで確認してみます。
GitHubバージョン管理の流れ

今が最新のコミットと全く同じ状態で、新規ファイルなど無い状態を表しています。
さらにファイルを更新していきます。「index.html」に何か一文を追加します。
再度「git status」コマンドで確認してみます。
GitHubバージョン管理の流れ

「Changes not staged for commit:」とありますが、「変更されたがステージされていないファイル」という意味です。「modified:index.html」と、変更のあったファイルのファイル名が表示されます。また、赤文字だとステージされていない状態ということになります。
インデックスした後に、再度「git status」で状態を確認してみます。
GitHubバージョン管理の流れ

「Changes to be committed:」に変化しました。これは「コミットの対象になっているファイル」という意味です。また、「modified:index.html」が緑文字に変更され、ステージされた状態になっていることがわかります。

リモートリポジトリにpushしてGitHubへ反映させる

ローカルリポジトリにリモートリポジトリを登録するには、以下のリモートリポジトリのアドレスを登録します。
GitHubリポジトリ作成

$ git remote add origin https://github.com/[ ユーザ名 ]/[ リポジトリ名 ].git

このコマンドは、ローカルリポジトリに「origin」という名前でリモートリポジトリを登録するという意味です。以降、このローカルリポジトリでは、「origin」を使用してリモートリポジトリとやり取りを行います。
続いて、登録したリモートリポジトリへプッシュして、ローカルでのコミットを反映させます。

$ git push origin master

その際、GitHubのユーザ名とパスワードを要求されるため入力します。
GitHubバージョン管理の流れ

ここで反映されるのは、コミットした分しかプッシュされません。最新のコミットをプッシュするには、「git status」コマンドで最新の変更がコミットされているかどうかを確認し、コミットされていない場合はコミットしておきます。
最後にGitHub上で登録されているか確認します。
GitHubバージョン管理の流れ

続いて、2Commits>addと遷移するとコミットの詳細や差分も確認できます。
GitHubバージョン管理の流れ

これにて最初に覚えておきたいGitHubの一連の流れを終わりにします。

まとめ

いかがでしたでしょうか。
今回は、GitHubを使う上での前提知識から簡単なGitHubの使い方を解説しました。
まだまだ触りの一部でしかなく、覚えないといけないことがたくさんあり、GitHubの充実したサービスを全く使いこなせていけません。
今後もGitHubの学習を進めていき、都度アウトプットしていきます。
webプログラミング学習と合わせてどんどん使っていきたいです。

※参考サイト

コメント

タイトルとURLをコピーしました