エンジニアにとってはGitHubは,今ではなくてはならない便利なツールです。ここでは、GitHubをこれまで一度も使ったことのない方向けにGitHubの使い方を基礎から解説していきます。GitHubのアカウント登録がまだの方は、以下のぼくの別記事を参照してアカウント登録を済ませてくださいね。
LINK:GitHubてなんだろな?用語の定義からアカウント登録までをやさしく解説
GitHubを使う上で重要な基本単語
GitやGitHubでは、普段聞きなれない専門用語がいろいろ見受けられます。これらの用語に困窮して、学習から離脱しないように、重要な基本単語の意味をいくつか覚えましょう。
リポジトリ(repository)
リポジトリを訳すと、貯蔵庫、容器という意味です。ここでは、ファイルの状態やファイルの変更の経歴を記録しておく場所です。
ローカルリポジトリ(local repository)
リポジトリを 各個人のPC場で新規作成、またはリモートリポジトリをクローンして各個人がPC上で作業を行う場所です。
リモートリポジトリ(remote repository)
専用サーバに保存された共有ファイルを保存する場所 複数人で共有することができます。
クローン(clone)
リモートリポジトリの内容を変更履歴も含めてすべてローカルリポジトリにコピーすることです。
インデックス (index)
ファイルの状態を記録するためコミットを実行する前に、一時的にファイルを保存する場所(必要ないファイルを含めずにコミットを行ったり、ファイルの一部の変更だけをインデックスに登録してコミットすることができます)
アド(add)
コミットを行う前に変更点をインデックスに追加する
コミット(commit)
リモートリポジトリにpushを行う前に更新履歴をローカルリポジトリに保存することです。コミットは複数保持することが可能です。
プッシュ(push)
ローカルリポジトリの更新履歴をリモートリポジトリに同期させ、自分のコミットをリモートレポジトリに反映させることです。
プル (pull)
プッシュでは自分の行った変更をリモートレポジトリに反映させますが、他の作業者がプッシュをしてリモートレポジトリを修正する場合があります。その場合、自分のローカルレポジトリとリモートレポジトリの状態が異なるので、リモートレポジトリと自分のローカルレポジトリを同期させることをプルと言います。
ブランチ(branch)
ブランチとはGitのバージョン管理の仕組みで、現在のコミットから分岐した作業履歴を残すことができるというものです。はじめはマスターブランチのみがリポジトリにありますが、ブランチを作ることによって、別の歴史に分岐するように、作業の流れを分岐することができます。つまり、ブランチを利用することによって、同じレポジトリ内で複数の変更を同時に進めることができます。また、これを使用して一つのプロジェクトを多人数で作業する場合に簡単に役割分担ができます。
マージ(merge)
ブランチとブランチを統合することを言います。あるブランチはそのブランチが分岐した元のブランチに統合されることがほとんどです。
Aブランチから分岐したBブランチがAブランチにマージする場合、両方のブランチでのコミットを含んだマージコミットが作成されます。そのコミットがAブランチの最新コミットとされます。
フォーク(fork)
既存のリポジトリの複製を作る行為をフォークと言います。食器のフォークのように先に行くほど、分離していくとこらからこう呼ばれるようです。共有されていないリポジトリは勝手に修正ができませんが、フォークを行なえば、自分のものとして修正ができます。
クローンとフォークの意味が似ており、混乱しそうですが、クローンはサーバー上のリポジトリをクライアント環境に複製する行為、フォークはサーバー上で、リポジトリの複製を行う行為です。
プルリクエスト(pull request)
フォークの説明のところで、お話ししたように直接オリジナルのリポジトリに書き込めない場合は、クライアント側で行なった更新作業をフォークしたリポジトリを通して、オリジナルのリポジトリの管理者に通知します。
その時、オリジナルの管理者に更新を依頼する手段をプルリクエストと言います。
GitHubを実際に使ってみよう。
LINK:GitHubてなんだろな?用語の定義からアカウント登録までをやさしく解説
ここからは、実際のGitHubの使い方を説明していくよ。すでに前述だけど、GitHubのアカウント作成がまだの方は、上のぼくの別記事へのリンクを使って記事を参照にてアカウントを作ろう。
GitHub仕様の大まかな流れ
それじゃ、GitHubの基本的な使い方を説明するよ。GitHubを使うには、Webブラウザー上から操作を行う方法と、「GitHub Desktop」というアプリを使う2つの方法があるけど、ここではオーソドックスなWebブラウザーからの方法を説明するね。また、スクショはMacだけど、Windowsでも基本的には同じだよ。また、テキストエディタには「Atom」を使っているけど、コーディングに適したものならば他のものでも問題ないよ。
作業的には以下の①の作業を始めに行い、それ以降は②から⑤の作業を繰り返して行うんだ。
- GitHubでリポジトリを作成する。(git init)もしくはリモートレポジトリを複製する。(git clone)
- ファイルの作成、編集、修正をテキストエディタで行う。
- ②の結果を、gitのインデックスに追加する。(git add)
- ③の結果を、ローカルリポジトリにコミットする。(git commit)
- ④で作ったローカルリポジトリをプッシュしてリモートレポジトリへ反映させる。(git push)
上位の①から⑤を1つづつ具体的に説明していくよ。
GitHubでリポジトリを作成する。
上のリンクからGitHubのサイトにアクセスしよう。
上のスクショのページが開いたら、矢印の「New」をクリックしよう。
①にはリポジトリの名前、②にはリポジトリの内容の要約を入力しよう。
③はリモートレポジトリを「Public」か「Private」を選択しよう。また、「Private」は有料会員のみ選択できるよ。そして最後に、④の「Create Repository」をクリックするとリポジトリの作成は完了だよ。簡単だね!
この次の画面では、リモートリポジトリのアドレスが表示されるよ。ローカルリポジトリをリモートリポジトリにプッシュするときに必要になる情報なので、記録しておこうね。
ファイルの作成、編集、修正をテキストエディタで行う。
エディターを開き上のスクショのようにPythonでおきまりの「Hello world!」を出力するコードを書き、ルートの直下に「github」フォルダーを作り、その中に上のコードを「Hello_world.py」のファイル名でセーブしよう。
ファイルをgitのインデックスに追加する。
ここからはターミナルを使って作業を行なっていくよ。「ターミナルて何?」という方は、以下のぼくの別記事へのリンクにアクセスして参照してみてね。
ターミナルを開けて、「cd github」と打ち込んで、enterを押し、先ほど作ったPythonのコードをセーブした「github」フォルダーに移動しよう。次に「git init」を使ってGitリポジトリを新たに作成しよう。
「git init」の後、enterを押すと、上のスクショの様な画面表示になるよ。
それでは先ほど作成したPythonのファイルをインデックスに追加しよう。
「git add Hello_world.py」と入力してenterを押して、このファイルをインデックスに追加しよう。
インデックスをローカルリポジトリにコミットする
それでは、インデックスに追加されたファイルをローカルリポジトリにコミットしよう。
「git commit -m "add new file"」と入力しenterを押そう。これで、コミットは完了だよ。
ローカルリポジトリをプッシュしてリモートレポジトリへ反映させる。
それではいよいよ、プッシュだよ。以前のリポジトリを作る作業の時に、リモートアクセルのアドレスを記録したはずだね。そのアドレスを使って情報を追加するよ。具体的には「git remote add origin https://github.com/xxxxxxxx/yyyyyyyy/.git」でxxxxxxxxにはユーザー名、yyyyyyyyにはレポジトリ名が入るよ。これを入力してenterだね。
そして、「git push origin master」と入力してenterだよ。
そうすると、上のスクショの様な表示が出て、プッシュは完了だね。念の為、GitHupのサイトから確認してみよう。
矢印のところにある様にPythonのファイルがちゃんとリモートリポジトリに記録されているよ。これで、基本的な一連の作業は完了だよ。
まとめ
いかがでしたでしょうか。GitHubを使う上での基本となる一連の作業をスクショで示しながら説明してきました。一部ターミナルを使っての作業があるため、慣れていない方は少し戸惑うことがあるかもしれませんが、ターミナルのついては、基本的なことを別記事で説明していますので、そちらを参考しにて、勉強してください。
それでは、最後までお付き合いありがとうございました。さようなら。
コメント