Git&Github初心者なのですが、マージの挙動がイマイチ分かっていません。
Squashを使って以下のようなことをしたのですが、キレイにマージできません。
やったこと
- テストレポジトリを作成
main
ブランチからdevelop
ブランチを作成develop
ブランチからfix
ブランチを作成- fixブランチに対して2回コミット(
fix1
,fix2
) - Github上で
fix
ブランチをdevelop
ブランチにマージ - Github上で
develop
ブランチをmain
ブランチにマージ(Squashして1コミットに集約)
この状態で、main
→develop
のプルリクエスト、develop
→main
のプルリクエストを作成しました(未マージ)
Pull request #3
Pull request #4
起こる事象
この状態では、main
とdevelpp
はマージ済みなので同じだと思っていたのですが、プルリクエストでは差分が発生しています。
Pull request #3
Squashしたのでコミットに差分が出そうなのは何となくわかるのですが、なぜファイルの中身にも差分が出ているのでしょうか。。
そして、このような現象を発生させずにきれいにマージするにはどうしたらいいのでしょうか。
また、develop
→main
のプルリクエストも差分が発生しています
すでにマージしたんじゃなかったっけ、、?
図示
Githubは課金しておらずグラフ表示できないので、GitLabにインポートしてグラフ表示しました。
merge Develop (#2)
というのがSquashしたdevelopからmainへのマージですが、これがマージではなくmainへの直接コミット(?)のようになっています。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。