このエントリーをはてなブックマークに追加

読了: 約 2 分

会社のプロジェクトで、プロジェクトのレポジトリから、forkして個人のレポジトリを作成して開発するフロー(git-flowっぽいやり方)で開発を進めている中で、謎の事件が発生するのでメモ。

新規機能を創った個人レポジトリのブランチが勝手にupstreamにあるブランチにマージされる

origin という名前で個人のレポジトリを設定
upstream はプロジェクトのレポジトリを設定

originにPushして、個人のレポジトリからプルリクエストをupstreamの特定のブランチにしていくというスタイルですが、pull requestを送った後に再度プッシュしたら何故か、mergeされてしまう。

恐らく再現する流れ

1. masterからfeature/1というブランチを生成。作業し、upstreamの特定のブランチにプルリク
2. feature/1から、feature/2というブランチ生成(これがミス)。masterからfeature/2を作成していれば起きなかったかもしれない?
3. 個人環境(origin)のfeature/2からプルリクを1と同様のupstreamの特定のブランチに
4. feature/2で修正が入り、originのfeature/2にpush
5. ↑上記の段階でupstreamに勝手にマージされるはず

ここでgit push upstream [特定のブランチ]であれば、mergeされてしまうのかなというのが
分かるのですが、何故originにプッシュしてマージされるのか構造が不明。

疑問点

・feature/1を内包しているfeature/2があるので、勝手にfeature/1はマージされる?
・feature/1のpull requestが勝手にマージされたとしても、feature/2は何故勝手にマージされたのか。

懸念点

・セルフマージっぽくて確実に冷ややかな視線を浴びることになる。

検証を重ねた訳ではないので、再現の方法が正しいのかは若干不明。

SNSでもご購読できます。

運営メディア

男性向けお役立ちメディア Coolhomme
就職・転職、エンジニア転職向け求人サイト Rplay
'