Für diejenigen, die immer noch nach einer einfachen Antwort suchen, gibt es folgende Informationen Git-Kirsche . Es vergleicht tatsächliche Diffs anstelle von Commit-Hashes. Das bedeutet, dass es auch Commits berücksichtigt, die "cherry picked" oder rebased wurden.
Checken Sie zunächst den Zweig aus, den Sie löschen möchten:
git checkout [branch-to-delete]
und vergleichen Sie ihn dann mit git cherry mit Ihrem Hauptentwicklungszweig:
git cherry -v master
Beispielhafte Ausgabe:
+ 8a14709d08c99c36e907e47f9c4dacebeff46ecb Commit message
+ b30ccc3fb38d3d64c5fef079a761c7e0a5c7da81 Another commit message
- 85867e38712de930864c5edb7856342e1358b2a0 Yet another message
Anmerkung: Die -v
ist es, die Commit-Nachricht zusammen mit dem SHA-Hash einzuschließen.
Zeilen mit einem vorangestellten '+' befinden sich im zu löschenden Zweig, aber nicht im Hauptzweig. Zeilen mit einem vorangestellten "-" haben eine entsprechende Übergabe im Master-Zweig.
Kombinieren Sie Cherry Pick mit Grep, um NUR die Commits zu finden, die nicht in Master sind:
git cherry -v master | grep "^\+"
Beispielhafte Ausgabe:
+ 8a14709d08c99c36e907e47f9c4dacebeff46ecb Commit message
+ b30ccc3fb38d3d64c5fef079a761c7e0a5c7da81 Another commit message
0 Stimmen
Um fehlende Übertragungen zwischen zwei Zweigen aufzulisten, können Sie compare-branches.py verwenden bitbucket.org/aakef/compare-git-branches
0 Stimmen
Verwandt: stackoverflow.com/q/1419623/1959808