100日後にエンジニアになるキミ - 57日目 - Git - Gitの使い方3


昨日までのはこちら

100日後にエンジニアになるキミ - 42日目 - クラウド - クラウドサービスについて

100日後にエンジニアになるキミ - 36日目 - データベース - データベースについて

100日後にエンジニアになるキミ - 24日目 - Python - Python言語の基礎1

100日後にエンジニアになるキミ - 18日目 - Javascript - JavaScriptの基礎1

100日後にエンジニアになるキミ - 14日目 - CSS - CSSの基礎1

100日後にエンジニアになるキミ - 6日目 - HTML - HTMLの基礎1

100日後にエンジニアになるキミ - 53日目 - Git - Gitについて

最近の開発ではGitが欠かせません。
本日はGitの使い方の続きです。

昨日の講座はこちら
100日後にエンジニアになるキミ - 56日目 - Git - Gitの使い方2

昨日までのおさらい

ローカルリポジトリを作ってファイルを作成してコミットする。

Githubにアカウントとリモートリポジトリを作って
ローカルリポジトリのファイルをリモートリポジトリにプッシュする。

リモートリポジトリをローカルに複製する

ここまで出来たら残る操作の学習に移りましょう。

ブランチの仕組み(branch)

ソフトウェアの開発では複数のメンバーが同時に機能追加を行ったりバグ修正を行ったりするので
複数のリリースバージョンが存在し、それぞれを保守しなければならないといったこともあります。

並行して行われる複数のバージョン管理を行うためGitにはブランチという機能が備わっています。

ブランチ

ブランチとは作業履歴の流れを分岐して記録していくためのものです。
分岐したブランチは他のブランチの影響を受けないため同じリポジトリ中で
複数の変更を同時に進めていくことができます。

参考:
https://backlog.com/ja/git-tutorial/stepup/01/

分岐したブランチは他のブランチとマージ(合流)することで1つにまとめることが出来ます。

masterブランチ

リポジトリに最初のコミットを行うとGitはmasterという名前のブランチを作成します。
以後のコミットはブランチを切り替えるまでmasterブランチに追加されていきます。

参考:
https://backlog.com/ja/git-tutorial/stepup/01/

作業ブランチを作成する(branch)

最初はmasterブランチしかない状態です。
作業用のブランチを作成するにはbranchコマンドを用います。

git branch ブランチ名

git branch branch1

これで新しく作業ブランチを作成できました。

作業ブランチを確認する(branch)

今作業を行なっているブランチが何処なのかはbranchコマンドで確認することが出来ます。

git branch

git branch

branch1
* master

作業ブランチには*がつきます。

作業ブランチを切り替える(checkout)

作業ブランチを切り替えを行うにはcheckoutコマンドを用います。

先に移動先の作業ブランチを作成しておかないと移動できないので
あらかじめbranchコマンドで作成しておきましょう。

git checkout ブランチ名

git checkout branch1

Switched to branch 'branch1'

作業ブランチが切り替わりました。
これでコミットすると、この作業ブランチにコミットされることになります。

コマンドでオプション-bをつけるとブランチ作成とチェックアウトを同時に行えます。
git checkout -b ブランチ名

git checkout -b branch2

Switched to a new branch 'branch2'

プルリクエストとは(Pull Requests)

プルリクエストは他の開発者に更新を通知する機能です。

プルリクエストGit自身の機能ではなくGitHubが最初に提供した機能で
今では主要なGitホスティングサービスやツールで利用できます。

プルリクエストは次のような機能を提供しています。

・機能追加や改修など作業内容を担当者や関係者に通知
・ソースコードの変更箇所を表示
・ソースコードに関するコミュニケーションの場を提供

プルリクエストは一覧で見ることができるため未完了のプルリクエストを簡単に確認できます。
ソースコードをレビューして最終的にマージされるソースコードの品質を高くできます。

プルリクエストを導入した際の流れは次のとおりです。

1.開発者がGitHubにブランチをプッシュする
2.開発者がブランチからプルリクエストを作成する
3.レビュワーがコードをレビューする
4.ブランチをマージする

参考:
https://backlog.com/ja/git-tutorial/pull-request/03/

プルリクエストを作成する

Githubからプルリクエストを行うには
リポジトリのトップ画面でNew Pull Requestボタンをクリックして作成を開始します。

リモートリポジトリからプルする(pull)

複数人で作業をするとリモートリポジトリがどんどん更新されていきます。
変更した内容を自分のローカルリポジトリに取り込む必要が出てきます。

リモートリポジトリからローカルリポジトリを更新するにはプルpullという操作を行います。

git pullでは全てのブランチの変更内容を取得し現在作業対象としている
ブランチ(通常はmaster)の変更内容を作業ディレクトリに反映します。

特定のブランチの変更内容だけを取り込みたい場合は
git pull リモートの名前 ブランチの名前
と指定します。

git clone」を実行すると複製元のリモートリポジトリにはoriginという名前が付きます。

デフォルトのブランチは通常masterという名前になっているため
git pull origin masterと実行するとデフォルトブランチだけを更新します。

# リモートリポジトリで変更された内容を全て取得し現在の作業ツリーに反映する
git pull

# デフォルトブランチの変更内容を取り込む
git pull origin master

# 指定したブランチの変更内容を取り込む
git pull リモートの名前 ブランチの名前

他の人の作業更新を聞いたらファイルの更新を行いましょう。
まずは作業ディレクトリに向かいます。

cd 作業ディレクトリ

作業ディレクトリに着いたらpullコマンドを実行します。

git pull origin master

改めてローカルリポジトリのファイルを見てみると更新されているようです。

まとめ

ブランチの仕組みとプルリクエストを使った更新の通知の仕組みを覚えて
開発現場での作業工程がどんな感じになるのかを知っておこう。

君がエンジニアになるまであと43日

作者の情報

乙pyのHP:
http://www.otupy.net/

Youtube:
https://www.youtube.com/channel/UCaT7xpeq8n1G_HcJKKSOXMw

Twitter:
https://twitter.com/otupython