前提・実現したいこと
GitHubにて特定の条件を満たしてPullRequestを作成すると、存在しないはずの差分が表示されます。
git diffでは差分がないにもかかわらず、です。
どうしてこのような差分が表示されるのか、どなたか解説をいただけないでしょうか。
再現条件
- 新規リポジトリにmasterブランチとして最初のcommit, pushを行う
- masterからbranch1,branch2を作成
- branch1に修正を加え、commit, push
- branch1の修正をbranch2にマージ
- masterに修正を加え、commit, push
- masterの修正をbranch1, branch2にマージ
- branch1からbranch2へのPull Requestを作成
この時、GitHub上のPullRequestには手順3の修正が差分として表示されてしまうのです。
手順4でマージ済みで、Pull Request作成時はbranch1とbranch2に差分はありません。
上記操作を行い、再現させた状態のリポジトリも用意してみました。
https://github.com/jkneko/MysteriousDifferences
謎の差分が表示されるPullRequest。
https://github.com/jkneko/MysteriousDifferences/pull/1
行った操作
bash
1git clone git@github.com:jkneko/MysteriousDifferences 2cd MysteriousDifferences 3 4# Masterのイニシャルコミットを作る 5for a in {1..10} 6do 7 echo $a 8done > README.txt 9 10git add README.txt 11git commit -am init 12git push origin master 13 14# Masterからブランチ1,2を作る 15git checkout -b branch1 16git push origin branch1 17git checkout master 18git checkout -b branch2 19git push origin branch2 20 21# ブランチ1に修正を入れる 22git checkout branch1 23gsed -i 's/3/333/' README.txt 24git commit -am 'cahnge to 333 from 3' 25git push origin branch1 26 27# ブランチ1の修正をブランチ2に反映 28git checkout branch2 29git pull origin branch1 30git push origin branch2 31 32# Masterに修正を入れる 33git checkout master 34gsed -i 's/5/555/' README.txt 35git commit -am 'cahnge to 555 from 5' 36git push origin master 37 38# masterの修正をブランチ1,2にマージ 39git checkout branch1 40git pull origin master 41git push origin branch1 42 43git checkout branch2 44git pull origin master 45git push origin branch2 46 47# ・ブランチ1をブランチ2にマージ というPRを作る 48# すると謎の差分が表示される 49 50
git diff の実行結果
$ git checkout branch2 Switched to branch 'branch2' $ git diff branch1 $
Git feature flowという取り回し方法で運用していると、このパターンが多く発生し困っておりまして。
どなたかアドバイスをいただけますと幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/16 01:32