Gitでは、ブランチを利用することで、並行開発を行うことができる。今回は、ブランチを新規作成し、新規作成したブランチ上でファイルの追加・変更・削除を行った上で、元のブランチにマージしてみたので、その手順を共有する。
なお、ブランチについての説明は、以下のサイトを参照のこと。
https://backlog.com/ja/git-tutorial/stepup/01/
前提条件
下記記事の手順を、リモートリポジトリ名=git-use-branchとして実行済であること。
やってみたこと
- git cloneコマンドの実行
- featureブランチの作成
- ファイルの更新
- 更新後ファイルをfeatureブランチにコミット
- featureブランチの内容を元の(master)ブランチにマージ
- 元の(master)ブランチの内容をリモートブランチへ反映
git cloneコマンドの実行
「git clone (リポジトリ名)」というコマンドで、リモートリポジトリのファイルをローカルに取得することができる。その実行手順は、以下の通り。
1) リモートリポジトリを取得するフォルダに移動し右クリックし、「Git Bash Here」メニューを選択する。
2) Git Bash(gitを操作する際に使うターミナル)が起動するので、「git clone (リポジトリ名)」コマンドを入力し、リモートリポジトリのファイルをローカルに取得する。
3) 以下のようなコマンドを実行することで、リモートリポジトリのファイルをローカルに取得できたことが確認できる。
featureブランチの作成
ここでは、並行開発を行うためのfeatureブランチを作成する。
1) 「git branch」コマンドを実行し、現在のブランチと、現在存在するブランチを確認する。
上記実行結果により、現在「master」ブランチにいて、「master」ブランチのみ存在することが確認できる。
2) 「git checkout -b (新しいブランチ名)」というコマンドを実行し、指定したブランチを作成し、指定したブランチに切り替える。
3) 「git branch」コマンドを実行し、現在のブランチと、現在存在するブランチを再度確認する。
上記実行結果により、現在「feature」ブランチにいて、「master」「feature」ブランチの2つが存在することが確認できる。
ファイルの更新
ここでは、下記記事の「ファイルの更新」と同じ動作を実行する。
更新後ファイルをfeatureブランチにコミット
更新後ファイルをfeatureブランチにコミットするのは、前回と同様に、git add⇒git commitの順に実施する。
1) 「git branch」コマンドを実行し、現在のブランチがfeatureブランチであることを確認する。
2) 「git add .」を実行し、作業ディレクトリ内の全ファイルを、コミット対象ファイルとしてインデックスする。
3) git addコマンド実行後の結果を確認するため、Gitの作業ファイルを配置するフォルダに移動し右クリックし、「Git GUI Here」メニューを選択する。
4) Git Gui(gitを操作する際に使うGUIツール)が起動し、「git add .」で削除・更新・追加した全ファイルが「Staged Changes(Will Commit)」に表示されることが確認できる。
5) 「git commit -m “(commit時のコメント)”」を実行し、作業ディレクトリ内の全ファイルを、ローカルリポジトリにコミットする。
6) Git Guiを開くと、「Staged Changes(Will Commit)」に表示されていたファイルが表示されないことが確認できる。
7) Git Guiで「Repository」メニューから「Visualize feature’s History」を選択すると、以下のように、コミット履歴が確認できる。
featureブランチの内容を元の(master)ブランチにマージ
これまではfeatureブランチ上で作業してきたので、元の(master)ブランチに変更内容を反映する。その手順は以下の通り。
1) 「git checkout (変更後ブランチ名)」というコマンドで、masterブランチに変更する。変更前後のブランチは「git branch」コマンドで確認する。
2) リモートリポジトリが更新されている可能性があるので、「git pull (リモート名) (ブランチ名)」を実行し、リモートリポジトリの更新内容をローカルに反映する。
3) 現在のmasterブランチのファイル内容を確認すると、featureブランチの更新内容がまだ反映できていないことが確認できる。
4) 「git merge (マージ元ブランチ名)」というコマンドで、featureブランチの更新内容を、元の(master)ブランチに反映する。
5) 現在のmasterブランチのファイル内容を確認すると、featureブランチの更新内容が反映されていることが確認できる。
元の(master)ブランチの内容をリモートブランチへ反映
元の(master)ブランチの内容をリモートブランチへ反映する手順は、前回と同様にgit pushコマンドを利用する。その手順は以下の通り。
1) 「git push (リモート名) (ブランチ名)」を実行し、ローカルリポジトリの内容をリモートリポジトリに反映する。
2) GitHub上のリモートリポジトリを確認すると、以下のように、ローカルリポジトリの内容がリモートリポジトリに反映されていることが確認できる。
3) 今回作成したfeatureブランチは不要なので、「git branch -d (ブランチ名)」というコマンドでfeatureブランチを削除する。
要点まとめ
- 「git branch」コマンドで、現在のブランチや、現在存在するブランチが確認できる。
- 「git checkout -b (新しいブランチ名)」というコマンドで、指定したブランチを作成し、指定したブランチに切り替えることができる。
- 「git merge (マージ元ブランチ名)」というコマンドで、ブランチのマージが行える。
- 「git branch -d (ブランチ名)」というコマンドで、指定したブランチの削除が行える。