git alle Änderungen in einem spezifischen Branch ermitteln



  • Ich hab in etwa folgende Konstellation

    o---o---o---o---o         release
          /               /|
         /   a---b---c---d |         <branch>
        /   /           /  |
    ---o---o---o---o---o---o---o---o master
    

    wie kann ich, auch im nachhinein, all die Änderungen in <branch> ermitteln (im Bild also a-d, ohne irgendein o)? git log <branch> zeigt leider auch die aus anderen branches an.
    Mit git merge-base bekomm ich zwar den ersten gemeinsamen Knoten, aber der allein hilft mir auch nicht

    Ich hoffe, die Grafik ist hilfreich genug



  • Geht sowas wie
    git log foo..
    Wobei foo der mit git merge-base ermittelte commit ist?



  • Die Lösung von SG1 funktioniert an sich. Mit git log foo..bar bekommst du auch einfach alle Commits, die von bar erreichbar sind, aber nicht von foo. Hilft dir das?

    Siehe auch hier: http://book.git-scm.com/3_reviewing_history_-_git_log.html



  • ich kanns aktuell nicht testen, morgen früh dann wieder, aber git log foo..bar war mitunter einer der ersten Versuche, also eher nein 😉 (ich probiers aber dann nochmal)

    Solange ich nicht wieder alles zurück in den master gemerged hab ist das alles ja kein Problem

    Wenn ich wenigstens den letzten Commit eines branches ermitteln könnte, bevor er wieder in den master überging (ähnlich wie merge-base , nur eben von der anderen Seite)

    Ich will quasi die gleiche Ausgabe, die ein git diff master...<branch> geben würde, kurz bevor das ganze in dem master gemerged wird. Nur eben zu einem Zeitpunkt, wo das ganze längst im master vorhanden ist.

    Im oberen Beispiel bekomm ich also den Vorgänger von a recht einfach raus. Mir fehlt d


Anmelden zum Antworten