このレッスンでは、ブランチの作成や消去方法について学びます。ブランチとは、Gitの機能のひとつで、複数の作業を並行して行う際などに作業履歴を分岐させることが出来る機能です。
ちなみに作成したブランチを削除する場合は「$ git branch -D」ブランチ名で削除が可能です。
ただしブランチを削除する場合は、いったんマスターブランチに移動してから削除のコマンドを実行しないとエラーになってしまいます。
例えば建物の解体の時に自分がまだ中にいる建物を壊されたらびっくりしますよね。
ですので、削除したいブランチにいる状態のまま削除コマンドは実行できないので注意してください
このレッスンでは、ブランチの作成や消去方法について学びます。ブランチとは、Gitの機能のひとつで、複数の作業を並行して行う際などに作業履歴を分岐させることが出来る機能です。
一番最初のコミットの時点で、masterブランチというブランチが作成されます。すでに1度コミットを行っているので、masterブランチが作成されているはずです。
ターミナルで以下のコマンドを実行して確認してみて下さい。現在自分がいるブランチには*(アスタリスク)が付きます。
$ git branch
画像のように【fatal: Not a git repository (or any of the parent directories): .git】とエラーコードがでた方は、何もフォルダを開いていない状態でコマンドを入力した為エラーが表示されています。
前回のチュートリアルでコミットを実行したのはnewsableフォルダですので【$ cd newsable】でまずはフォルダを移動してから再度【$ git branch】を実行してみてください。
【*master】が表示されていればmasterブランチが作成されているということです。
作業履歴を分岐させたい時には、トピックブランチと呼ばれるブランチを作成します。このブランチの概要や使い方を以下の図を例に説明します。
まず、最初のコミットで作成されるmasterブランチがあります。masterブランチは、ユーザーに公開するアプリのソースコードを管理するブランチとして使用されます。
トピックブランチは、新しい機能の追加やエラーの修正などの作業を行う為のブランチです。例えば、ブログ機能の追加はトピックブランチAで、トップページのエラー修正はトピックブランチBで行うというように、作業ごとにブランチを分けて開発を行います。
なぜ履歴を分岐させる必要があるのかというと、トピックブランチでの作業は他のブランチには影響しないという特徴がある為です。
たとえば、トピックブランチで追加した機能にエラーが発生したとしても、トピックブランチをmasterブランチに反映させない限りエラーがユーザーに見えずに済むのです。
では、実際にトピックブランチを作成しそのブランチで作業してみましょう。新たにtest-branchというブランチを作成します。ターミナルで以下のコマンドを実行して下さい。-bのあとの部分にはブランチの名前を記述します。
$ git checkout -b test-branch
Switched to a new branch 'test-branch'と表示されていれば新しいブランチの作成に成功しています。
上記コマンドを実行したことで作業履歴は、上の図のようにmasterブランチからトピックブランチ(test-branch)に分岐します。では、トピックブランチで実際に作業してみます。404.htmlを以下のように変更して下さい。
目的のファイルの探し方はWindowsの場合はCTRL + e、Macの場合はcontrol + eでしたね。
では、この変更をコミットします。以下のコマンドを実行して下さい。
$ git add .
前回のチュートリアルでも登場したコマンドです。実行したコマンドが処理されているのかどうか確認するのは【$ git status】でしたね。念のため次のコマンドに進む前に今の処理を確認してみましょう。
【On branch test-branch】とあります。最初に【$ git branch】で確認したときは、マスターブランチでしたが、今はきちんとテストブランチで作業ができているようです。
さらに【Changes to be committed:】とありますので、404.htmlのファイルの変更をコミットしたことも確認できます。どうやらここまではうまくいっているようです。
$ git commit -m "Change 404.html"
ターミナルにズラズラっと処理が表示されています。一瞬エラーかな?と焦るかもしれませんが、【ERROR】の文字はないので、処理内容が表示されているとわかります。
先ほどのコミットはトピックブランチで行いました。ですので、変更履歴は上の図のようにトピックブランチで管理されています。
トピックブランチでの作業は他のブランチに影響を与えません。masterブランチに移動して、実際に確かめてみましょう。masterブランチへの移動は以下コマンドです。移動してコードを見てみると変更がないはずです。
$ git checkout master
ターミナルの表示を見てください。【Switched to branch 'master'】とありますので、ブランチはテストブランチからマスターブランチに移動されています。
さらに上部の404.htmlのコードを確認すると先ほどのテストブランチの404.htmlのファイルへ追記した【Modify 404.html】の文言が消えているのがわかります。
このように、枝分かれした各ブランチは他のブランチに影響を与えずに作業を進めることができるのです。
このブランチという機能によって、以下図のようにアプリの機能を同時に複数開発可能となります。アプリにエラーが発生してアクセス不可という事を防ぐためにも、作業ごとにトピックブランチを作成して開発を進めて行きましょう。
トピックブランチでの変更をmasterブランチでも使用したい場合は、マージを行います。マージとは、トピックブランチでの変更をmasterに反映させる作業の事です。マージは以下コマンドで出来ます。
$ git checkout master
※前章で【$ git checkout master】を実行して、そのまま続けて作業をしている方は【$ git checkout master】はとばして次のコマンドから実行してください。
$ git merge test-branch
ターミナルの処理に【Updating 7fd5627..753fd0b】とあります。さきほどテストブランチで追記した内容をマスターブランチにアップロードしてくれたことがわかりますね。
これで、masterに変更が反映されます。ターミナル上部に表示されている404.htmlのコードを見てみると、【Modify 404.html】と文言が追加されています。行った変更が反映されているのがわかります。
新たにnew-branchというブランチを作成してみましょう。また、Gitコマンドを検索してそのブランチを削除してみましょう。
では、変更をGithubにプッシュしましょう。2回目以降のmasterブランチのプッシュは以下コマンドで行います。
(master)$ git push
プッシュした変更がGithubに反映しているか確認してみましょう。
【解答】
自分のレポジトリは「Your repositories」をクリックすれば開けます。
以下イメージを参考にして下さい。
コミットの履歴が確認できます。
このようにpushすることでGithubにコードの履歴が保存されていきます。
今後、複数人でアプリを開発する際などに「誰がどんなコードを書いたのか」を確認したり、自分のコードをチェックしてもらえたり・・・と非常に便利なので忘れずにGithubにpushしましょう。
無料ビデオ講座のお知らせ
Skillhub [スキルハブ]では無料の動画講座を多数公開しています。他校だと数万円するような講座が無料で受講できます。