Git

Gitでブランチを利用して並行開発してみた

Gitでは、ブランチを利用することで、並行開発を行うことができる。今回は、ブランチを新規作成し、新規作成したブランチ上でファイルの追加・変更・削除を行った上で、元のブランチにマージしてみたので、その手順を共有する。

なお、ブランチについての説明は、以下のサイトを参照のこと。
https://backlog.com/ja/git-tutorial/stepup/01/

前提条件

下記記事の手順を、リモートリポジトリ名=git-use-branchとして実行済であること。

Gitでプロジェクトを作成しGitHubにpushしてみたGitとは、プログラムのソースコードなどをバージョン管理するためのツールで、多くの開発現場で利用されている。また、Gitで管理し...

やってみたこと

  1. git cloneコマンドの実行
  2. featureブランチの作成
  3. ファイルの更新
  4. 更新後ファイルをfeatureブランチにコミット
  5. featureブランチの内容を元の(master)ブランチにマージ
  6. 元の(master)ブランチの内容をリモートブランチへ反映

git cloneコマンドの実行

「git clone (リポジトリ名)」というコマンドで、リモートリポジトリのファイルをローカルに取得することができる。その実行手順は、以下の通り。

1) リモートリポジトリを取得するフォルダに移動し右クリックし、「Git Bash Here」メニューを選択する。
git_cloneコマンドの実行_1

2) Git Bash(gitを操作する際に使うターミナル)が起動するので、「git clone (リポジトリ名)」コマンドを入力し、リモートリポジトリのファイルをローカルに取得する。
git_cloneコマンドの実行_2

3) 以下のようなコマンドを実行することで、リモートリポジトリのファイルをローカルに取得できたことが確認できる。
git_cloneコマンドの実行_3



featureブランチの作成

ここでは、並行開発を行うためのfeatureブランチを作成する。

1) 「git branch」コマンドを実行し、現在のブランチと、現在存在するブランチを確認する。
featureブランチの作成_1
上記実行結果により、現在「master」ブランチにいて、「master」ブランチのみ存在することが確認できる。

2) 「git checkout -b (新しいブランチ名)」というコマンドを実行し、指定したブランチを作成し、指定したブランチに切り替える。
featureブランチの作成_2

3) 「git branch」コマンドを実行し、現在のブランチと、現在存在するブランチを再度確認する。
featureブランチの作成_3
上記実行結果により、現在「feature」ブランチにいて、「master」「feature」ブランチの2つが存在することが確認できる。

ファイルの更新

ここでは、下記記事の「ファイルの更新」と同じ動作を実行する。

Gitでリモートリポジトリにあるプロジェクトを更新してみた今回は、リモートリポジトリにあるプロジェクトをローカルリポジトリにコピーし、ファイルの追加・変更・削除を行った上で、リモートリポジトリに...

更新後のファイルの状態は、以下の通り。
ファイルの更新



更新後ファイルをfeatureブランチにコミット

更新後ファイルをfeatureブランチにコミットするのは、前回と同様に、git add⇒git commitの順に実施する。

1) 「git branch」コマンドを実行し、現在のブランチがfeatureブランチであることを確認する。
commit_featureコマンドの実行_1

2) 「git add .」を実行し、作業ディレクトリ内の全ファイルを、コミット対象ファイルとしてインデックスする。
commit_featureコマンドの実行_2

3) git addコマンド実行後の結果を確認するため、Gitの作業ファイルを配置するフォルダに移動し右クリックし、「Git GUI Here」メニューを選択する。
commit_featureコマンドの実行_3

4) Git Gui(gitを操作する際に使うGUIツール)が起動し、「git add .」で削除・更新・追加した全ファイルが「Staged Changes(Will Commit)」に表示されることが確認できる。
commit_featureコマンドの実行_4

5) 「git commit -m “(commit時のコメント)”」を実行し、作業ディレクトリ内の全ファイルを、ローカルリポジトリにコミットする。
commit_featureコマンドの実行_5

6) Git Guiを開くと、「Staged Changes(Will Commit)」に表示されていたファイルが表示されないことが確認できる。
commit_featureコマンドの実行_6

7) Git Guiで「Repository」メニューから「Visualize feature’s History」を選択すると、以下のように、コミット履歴が確認できる。
commit_featureコマンドの実行_7_1

commit_featureコマンドの実行_7_2



featureブランチの内容を元の(master)ブランチにマージ

これまではfeatureブランチ上で作業してきたので、元の(master)ブランチに変更内容を反映する。その手順は以下の通り。

1) 「git checkout (変更後ブランチ名)」というコマンドで、masterブランチに変更する。変更前後のブランチは「git branch」コマンドで確認する。
featureブランチのマージ_1

2) リモートリポジトリが更新されている可能性があるので、「git pull (リモート名) (ブランチ名)」を実行し、リモートリポジトリの更新内容をローカルに反映する。
featureブランチのマージ_2

3) 現在のmasterブランチのファイル内容を確認すると、featureブランチの更新内容がまだ反映できていないことが確認できる。
featureブランチのマージ_3

4) 「git merge (マージ元ブランチ名)」というコマンドで、featureブランチの更新内容を、元の(master)ブランチに反映する。
featureブランチのマージ_4

5) 現在のmasterブランチのファイル内容を確認すると、featureブランチの更新内容が反映されていることが確認できる。
featureブランチのマージ_5

元の(master)ブランチの内容をリモートブランチへ反映

元の(master)ブランチの内容をリモートブランチへ反映する手順は、前回と同様にgit pushコマンドを利用する。その手順は以下の通り。

1) 「git push (リモート名) (ブランチ名)」を実行し、ローカルリポジトリの内容をリモートリポジトリに反映する。
リモートリポジトリへのpush_1

2) GitHub上のリモートリポジトリを確認すると、以下のように、ローカルリポジトリの内容がリモートリポジトリに反映されていることが確認できる。
リモートリポジトリへのpush_2_1

リモートリポジトリへのpush_2_2

3) 今回作成したfeatureブランチは不要なので、「git branch -d (ブランチ名)」というコマンドでfeatureブランチを削除する。
リモートリポジトリへのpush_3

要点まとめ

  • 「git branch」コマンドで、現在のブランチや、現在存在するブランチが確認できる。
  • 「git checkout -b (新しいブランチ名)」というコマンドで、指定したブランチを作成し、指定したブランチに切り替えることができる。
  • 「git merge (マージ元ブランチ名)」というコマンドで、ブランチのマージが行える。
  • 「git branch -d (ブランチ名)」というコマンドで、指定したブランチの削除が行える。