Gitのインストールと使い方

Gitとは?

Gitとは、プログラムのソースコードなどの変更履歴を管理する分散型バージョン管理システムです。

この変更履歴(ファイルの状態)を保管する場所のことを「リポジトリ」といいます。

Gitでは、ネットワーク上のリポジトリにある、全ての変更履歴を含む完全な複製を、ローカル環境(自分のPC)に作成することができます。
ネットワーク上に配置してみんなで共有するリポジトリをリモートリポジトリ
一人ひとりが利用するためにローカル環境に複製(クローン)したリモートリポジトリのコピーのことをローカルリポジトリをいいます。

基本的に、個人が行った作業の履歴をローカルリポジトリに保存(コミット)し、その履歴をリモートリポジトリへ反映(プッシュ)する流れで、作業を進めていきます。
また、他の人がプッシュした新しい履歴を自分のローカルリポジトリに取り込むこと(プル)もできます。

簡単にまとめると、
みんなで作業するから、誰が、いつ、どんな作業をしたのか記録して管理しようぜ!っていうのをやってくれるのがGitです。

GitHubとは?

GitHubは、Gitの仕組みを使い、世界中の誰もが、自分のプログラムやデータなどを保存、公開することができるようにしたウェブサービスです。
バージョン管理だけではなく、Wikiを使ったドキュメントの作成や、バグの追跡、SNSのような機能もあります。

GitHub Desktop
GitHubが提供しているアプリケーションで、GitHubを利用した開発をアシストするツールです。
Git操作をGUIベースで行えるため、感覚的にコミットやプッシュも行えるようになります。

カリキュラム課題の提出にはGitHubを使っていただきますので、GitHub Desktopを使っていきましょう。

※ Windowsを使用している方へ

GitHub Desktopをwindowsで使用する場合、初期のユーザー名に日本語を使用してると、この語の流れの途中で確実にエラーがでます。

C:\Users」から自分が普段使用しているフォルダ名(ユーザー名)を確認してください。大体の方が、ユーザー名と同じフォルダ名になっているかと思います。

ここのフォルダ名が英数字のみの場合は、問題なく進められるためここをスキップして、インストールしようへ進んでください。

普段使用しているユーザーフォルダが日本語名の方

GitHub Desktopを使用するには2通りの選択肢があります。

  1. 新たにユーザーを作成して、そのユーザーを使用してカリキュラムを進める。(ユーザー名は英数字のみ使用)
    参考:Windows 10 でローカルのユーザー アカウントまたは管理者アカウントを作成する
  2. 普段使用しているユーザーフォルダ名を英数字のみの名前に変更する。
    参考:[Windows10] ユーザーフォルダの名前を変更する

※ 2のユーザーフォルダ名変更に関しては、あまりお勧めはしません。
  現在インストール済みのアプリ等で、なにかしら不都合が起きる可能性も十分ありえるため、
  特別なこだわりがない限りは1の方法で新規ユーザーを作成することをお勧めします。
  発生した不都合に関しては、一切責任は負えませんのでご了承願います。

インストールしよう

それでは、GitHub Desktopをダウンロードしてみましょう。

まず、GitHub Desktopのホームページへアクセスしましょう。(https://desktop.github.com/)

OSに合わせたダウンロードボタンがあるので、これをクリックしてダウンロードします。

ダウンロードが完了したら、アプリケーションを起動します。

ここで、GitHubアカウントを作成するために、「Create your free account.」をクリックします。

ブラウザから、アカウントを登録します。

進んでいくと登録したメールドレスに確認メールが送られているので、確認します。

この画面まできたら登録完了です。

アカウントの作成ができましたので、GitHub Desctopのアプリケーションに戻り、「Sign in to GitHub.com」をクリックしてログインします。
最後のチェックボックスはお任せです。

ログインが完了したら、カリキュラム用のリポジトリを作成しましょう!
今後、カリキュラムにある課題の提出はここで作成するリポジトリを使用して提出していただくことになります。

リポジトリを作成するときは右上のツールバー「File」の中の「Create a New Repository 」から行います。
※macの方は、画面左上のツールバーから選択しましょう。

リポジトリの名前は「curriculum_js」
Windows ・・・local pathを「C:\LetsEngineer」に設定してください。
Mac   ・・・local pathを「/Users/※ユーザー名※/LetsEngineer」に設定してください。
チェックボックスとセレクトボックスのところはそのままで大丈夫ですので、入力が終わったら「Create repositry」をクリックしてください。

これで、ローカルリポジトリを作成することができました!

ここで一旦、このアプリのUIについて少し解説しておこうと思います。
4色の枠でおおまかに分けました。

まず、赤枠の部分ですが、
左から「現在作業中のローカルリポジトリ」、「現在作業中のブランチ」、「状態更新ボタン
という具合に並んでいます。

「現在作業中のローカルリポジトリ」
複数のプロジェクトを掛け持ちしたりする場合など、ローカル環境に複数のローカルリポジトリを持つことがよくあります。
そういう時にここから、作業するリポジトリを変更することができます。

「現在作業中のブランチ」
実際にリリースされているサービスでは現行のバージョンをメンテナンスしながら、バグ改修や新機能の開発をしていきます。
こういう場合には、同じリポジトリ内で複数のバージョンを管理していくことになりますが、これを管理するためにGitにはブランチという機能があります。
ブランチを使うことで履歴の流れを分岐させて、それぞれの変更履歴を別々に管理できるため、同じリポジトリ内で複数の開発を行うことができます。
このボタンから、作業するブランチを変更したり、新しいブランチを作成することができます。

「状態更新ボタン」
一番右のボタンでは、プッシュフェッチができます。
「Publish 〇〇」、「Push origin」ならプッシュ
「Fetch origin」ならフェッチができます。
このボタンは、リポジトリやブランチを作成したばかりなら「Publish 〇〇」、現在のブランチでプッシュする変更があれば「Push origin」に、なければ「Fetch origin」に自動で切り替わってくれます。

上記では、プッシュとはローカルリポジトリの変更をリモートリポジトリに反映すること、と説明しました。
フェッチはかなり大雑把にいうと、作業中のブランチで自分が知らない変更履歴(他の人がプッシュした履歴など)があれば教えてくれる機能のようなものです。
とりあえずは、このような解釈で問題ありませんが、フェッチについて詳しく知りたい方は、ブラウザなどで調べてみてください!!

青枠の部分では、
自分が変更した、コミット前のファイルを確認したり、リポジトリの変更履歴を確認することができます。

緑枠の部分で、
自分が作業した変更の履歴をコミットすることができます。
作業した変更の履歴をローカルリポジトリに保存するとこをコミットといいます。
ゲームデータのセーブのようなイメージです!

黄枠の部分には、
変更履歴の差異などの作業したファイルの中身が表示されます。

UIの説明はここまでにして、ブランチについて少しだけ補足します。
赤枠の「現在作業中のブランチ」のところクリックしてみてください。

Gitでリポジトリを新しく作成するとデフォルトで用意されるブランチがmasterブランチになります。
このリポジトリを1人だけで使用する場合は、masterブランチだけで開発をしても問題はありませんが、実際の現場ではmasterブランチはマージを行うだけのブランチ(本番環境)として運用されることが非常に多いです。
そのため、masterブランチで作業をしてmasterブランチへコミット、プッシュするような運用はまずありません。

ちなみに、ブランチがもっている変更履歴を、他のブランチに流し込むことをマージと言います。
上記で、他の人がプッシュした新しい履歴を自分のローカルリポジトリに取り込むことをプルと説明していますが、このプルはフェッチとマージを同時にやってくれる動作の事です。

カリキュラムを進めるにあたり、このリポジトリに他の方がプッシュすることはありませんが、将来のためにブランチを切ってそちらのブランチで課題を提出していきましょう。

先ほどの画面で「New branch」をクリックしてください。

Nameに「develop」と入力して「Create branch」をクリックしてください。

これでdevelopブランチが作成されて、作業中のブランチがdevelopに切り替わりました。

ここでもう一度「New branch」をクリックしてください。
すこし画面が変わっているかと思います。

このCreate branch based on…には新しいブランチの分岐元のブランチを選択できます。
ここでdevelopブランチをベースに選択して「JavaScript」というブランチを切ってみましょう。

これで、
masterブランチ :おおもとのブランチ
developブランチ:masterがベースの開発用ブランチ
JavaScriptブランチ  :developがベースの作業用ブランチ
といった風にブランチを分けることができました。

今後、JavaScriptのカリキュラム課題を提出する場合にはJavaScriptブランチにプッシュして提出してください。
masterブランチ、developブランチへのマージについてはお任せします。

 

最後に、今までの作業履歴をリモートリポジトリに反映させるためにプッシュする必要があります。

赤枠の「現在作業中のブランチ」が「JavaScript」であることを確認してから、「Publish repositry」をクリックしてください。

※ このボタンは状況に応じて名称がコロコロ変わるため不安になるかもしれませんが、状況に応じた適切な名称に切り替わっているだけで、
  動作自体は「プッシュする変更があればプッシュ、なければフェッチ」といった形なので、リポジトリブランチが問題なければ名称はあまり気にせず押して大丈夫です。

リモートリポジトリへの反映が無事終わり、最終的にこのボタンが「Fetch origin」に切り替わります。

これでJavaScriptブランチの変更履歴をリモートリポジトリへ反映させることができました。
同様に、「現在作業中のブランチ」をmasterとdevelopに変更して「Publish branch」でプッシュしてください。

プッシュが完了したら、しっかりリモートリポジトリに反映できているか確認してみましょう。

右上のツールバーの「Repository」から「View on GitHub」をクリックしてください。

ブラウザでGitHubが開かれ、リモートリポジトリの情報が開かれます。
Branchのセレクトボックスをクリックして先ほど作成したブランチ名が表示されていれば無事公開できたことが確認できます。

最後の最後に、今作成したリモートリポジトリを公開して終わりになります。

画像のようにリポジトリ名の横に「Private」と書いてあると思います。
この状態では、せっかく課題を提出しても自分以外の人がこのリポジトリを見ることができないので、Publicに変更して公開します。

赤枠の「Setting」から設定を開きます。
ページが変わって下にスクロールしていくと、下の画像の箇所があると思います。

「Make public」をクリックしてください。
そしたら確認モーダルがでてきますので、公開したいリポジトリネームを入力するとボタンが活性化します。

ボタンをおすと、画面が戻ります。
このときさきほどリポジトリ名の横にあった「Private」が消えていれば設定完了です。

これで、GitHubを利用した課題提出をするための準備が整いました。

課題の提出方法についての詳しい説明は次の項目で説明いたします。

Gitでよく使う用語

数多くの用語が出てきましたが、どれも現場で頻繁に飛び交う言葉ですのでしっかりと意味を理解して会話で使えるようにしておくことをお勧めします。
特にGit関係でよく出る用語について、まとめておきます。

クローン
自分のローカル環境にリモートリポジトリの複製(ローカルリポジトリ)を作ること。
プロジェクトにアサインしたら、環境構築の時にほぼ間違いなく通る。

コミット
自分の作業したファイルの変更履歴をローカルリポジトリに保存すること。

プッシュ
ローカルリポジトリの変更履歴をリモートリポジトリに反映すること。
これによって、ネットワーク上のリモートリポジトリから他の人が自分の変更履歴を確認できるようになる。

マージ
ブランチの変更履歴の情報を他のブランチに流し込むこと。
マージされたブランチはマージ元のブランチの変更履歴をすべて持っていることになる。

プル
リモートリポジトリにあるブランチの変更履歴の情報をローカルリポジトリのブランチに流し込むこと。
動作として、リモートリポジトリに更新があるか確認(フェッチ)して、更新を取り込む(マージ)になるため、フェッチ + マージ = プルということになる。

コンフリクト
変更履歴の競合のこと。
AさんとBさんで同じファイルで作業したりして、1つのファイルに対して別々の変更履歴があると発生する。

 

カテゴリー

アーカイブ

Close Bitnami banner
Bitnami