0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【GitHub】新しくブランチを切り、編集内容を親ブランチにマージする

Posted at

目的

開発を進めるにあたり、GitHubを使用しています。
チームで開発するにせよ個人で開発するにせよ、1つのブランチでゴリゴリ開発を進めるのではなく、機能ごとにブランチを作成して開発を進めましょう。

  • ブランチについて理解する
  • 新しいブランチを切る
  • 編集内容を現在のブランチにプッシュする
  • 親ブランチにプルリクエストを送る
  • 親ブランチはプルリクエストを受け入れ、編集内容をマージする

手順

ブランチについて理解する

開発を開始する前に、ブランチについて理解しましょう。
今回は下記のようなブランチ構成で仕事を進めていきます。
220723_gitで共有.jpg

GitHubではフォルダのブランチを作成することで、開発中のデータをマスターデータに上書きしないようにします。
masterは最終的な実運用に使用するフォルダです。ここからブランチを派生させます。
developmentブランチはテスト運用に使用するフォルダです。各個人が編集したファイルを集約させ、正しく動作するかを確かめます。このブランチをdefaultに設定します。
個人の作業ブランチは個人がおこなった作業を保存するファイルです。ブランチ名で作業内用が分かると良いでしょう。
ローカルは各個人のPCのことです。

新しいブランチを切る

# 現在のブランチを確認する(* がついてるのが現在のブランチ)
$ git branch
  * development
    master

# 新しいブランチを作成する
$ git checkout -b hello-A
  Switched to a new branch 'hello-A'

# 現在のブランチを確認すると、新しく作成したブランチに移動している
$ git branch -a
  * hello-A
    development
    master

ブランチを削除する場合は

ブランチを削除する場合は、下記コマンドを実行します。

$ git branch -d <ブランチ名>

編集内容を、現在のブランチにプッシュする

まずはファイルを適当に編集します。

application.html.erb
<body>
  <h1>Hello! A</h1> <!-- 編集内容 -->
  <%= yield %>
</body>

編集内容を現在のブランチにプッシュします。

$ git add .
$ git commit -m "add h1 A"
$ git push -u origin hello-A

push先はorigin <ブランチ名>とします。
教材通りにorigin masterとしないことに注意!

親ブランチにプルリクエストを送る

変更内容を親ブランチ(今回の場合はdevelopment)に受け入れてもらうようにお願いすることをプルリクエストを言います。
GitHubに編集内容をプッシュすると、レポジトリ画面に次のような表示がでます。

スクリーンショット 2022-09-18 9.20.59.png

Compare & pull requestボタンを押すと、編集内容を記入するように求められます。
この欄ではマークダウン方式で記載します。
過去のcommit内容を見ながら書くと、どんな編集をしたかが分かりやすいです。

スクリーンショット 2022-09-18 9.25.07.png

記載したらCreate pull requestボタンを押すとプルリクエストの送信が完了です。
レポジトリオーナーのマージを待ちましょう。

スクリーンショット 2022-09-18 9.27.28.png

レポジトリ所有者が親ブランチにマージする(プルリクエストを受け入れる)

プルリクエストを受け取ると、下図のようなお知らせが届きます。
Merge pull requestボタンを押して、プルリクエストの内容を確認しましょう。

スクリーンショット 2022-09-18 9.28.01.png

内容を確認したら、Confirm mergeボタンを押して編集内容をマージします。

スクリーンショット 2022-09-18 9.28.32.png

マージが成功すると下図のような表示に変更されます。
古いブランチはもう使わないのでDelete branchボタンで削除してしまいましょう。

スクリーンショット 2022-09-18 9.29.02.png

ローカルのdevelopmentブランチを最新版にする

GitHubの内容をローカルに反映させます。
ターミナルで

# developmentブランチに移動する
$ git checkout development
=> ローカルファイルは編集される前の状態に戻る

# ローカルのgitをoriginにある状態に揃える
$ git fetch

# 最新版のdevelopmentブランチをpullして反映させる
$ git pull origin development

以上で、ローカル上のファイルが最新版となりました。
以降、また別のブランチを切って開発を進めていきましょう。

まとめ

以上で新しくブランチを切り、編集内容を親ブランチにマージすることができました。
これまでの3記事で、とりあえず開発を進めることは可能です。
しかし複数人で開発を進めるにあたり、異なるブランチで同一のファイルを編集したときのプルリクはどうなるのでしょうか?

次回は

  • 異なるブランチで同一ファイルを編集したとき(コンフリクト)の対処法

について紹介する予定です。

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?