📖

git pullで現れるマージメッセージの正体

に公開

コミット履歴でよく見かけるこのメッセージの意味

Merge branch 'develop' of https://github.com/example-company/example-project into develop

このメッセージは「リモートのdevelopブランチをローカルのdevelopブランチにマージする」という意味です。

git操作(再現)

実際のプロジェクトでの履歴例:

  1. 田中さん:コミット
  2. 佐藤さん:コミット
  3. 佐藤さん:developにマージ
  4. 田中さん:developにマージ
  5. 佐藤さん:リモートのdevelopをpull ⇒ Merge branch 'develop' of https://github.com/example-company/example-project into develop出現!

この Merge branch 'develop' of... の正体は「pull」によるものだった!

git pullの裏側で何が起きているか

git pullを実行すると、内部で以下の処理が自動的に実行されます:

1. フェッチ

リモートの最新情報を取得

2. ローカルブランチに、そのブランチのリモートブランチをマージ

Merge branch 'develop' of https://github.com/example-company/example-project into develop

(リモートのdevelopブランチをローカルのdevelopブランチにマージする処理が走る)

3. マージコミット作成

結果として、上記のメッセージがコミットとしてSourceTreeやGitの履歴に表示される

まとめ

  • 今回の事象は、リモートブランチ(upstream)の変更を取り込んだことによる正常な動作
  • git pull = git fetch + git merge の組み合わせ
  • 今回のマージコミットのメッセージは、結局git margeによるものである ⇒ git pullの中にgit margeが含まれるから
  • 複数人での開発でよく見かけるごく自然な現象

自分の名前のコミット履歴を見ていると、自分が触っていないファイルの変更履歴がずらーーーっと表示されて慣れていない人は怖い思いするときありますよね。だいたいこれです。

この記事を書いてみて

いらない情報があったり、ハルシネーションが多かったり、プロンプトが下手なんだろうなと思いました。

Discussion