Was ich versucht habe und warum es passiert?
Keine der Lösungen hat für mich funktioniert. Als ich zwei Punkte verwendet habe, d.h. ..
anstelle von ...
, war der Unterschied auf GH viel näher an dem, was ich geändert hatte. Aber immer noch nicht genau alle meine Änderungen.
Das passiert, weil es ein Problem gibt, wie GitHub squash gemergte Änderungen darstellt. Am besten erklärt hier
Es passiert im Grunde genommen, wenn:
- Änderungen von
featureBranch
pushen
- Squash mergen in
main
- Lokal, während ich immer noch auf
featureBranch
bin, mergen mit main
. Weitere Änderungen machen und erneut pushen
- Aber dann auf GitHub sehe ich mehr Änderungen als ich erwarte.
Es ist erwähnenswert, dass dies kein Problem mit Git ist. Stattdessen ist es ein Problem mit GitHub. GitHub
kann nicht erkennen, dass der zusammengeführte Commit identisch mit der Summe der nicht zusammengeführten Commits ist und verursacht eine extra Diff.
Lösung
Auf deinem lokalen main alle Änderungen rückgängig machen und staschen, die noch nicht mit main gemergt wurden. Das habe ich so gemacht. Zum Beispiel, wenn ich 4 Commits hatte, die nicht in meinem PR waren und die squash gemergt wurden, dann würde ich folgendes tun:
git reset HEAD~4
git stash save "letzte 4 Commits"
Dann erstelle einen neuen Branch mit dem, was du gerade gestasht hast. Schritte:
git checkout main
git checkout -b newBranch
git stash apply
git add --all
git commit -m "irgendeine Nachricht"
git push