wake-up-neo.com

Wie führe ich das Git-Protokoll aus, um Änderungen nur für einen bestimmten Zweig anzuzeigen?

Ich habe eine lokale Niederlassung, die die Remote-/Master-Niederlassung verfolgt. Nach dem Rennen git-pull und git-log zeigt das Protokoll alle Festschreibungen im Remote-Verfolgungszweig sowie den aktuellen Zweig an. Da jedoch so viele Änderungen an der Remote-Verzweigung vorgenommen wurden, müssen nur die Festschreibungen angezeigt werden, die für die aktuelle lokale Verzweigung vorgenommen wurden.

Was wäre der Git-Befehl, um nur Commits für einen bestimmten Zweig anzuzeigen?

Anmerkungen:

Konfigurationsinformation:

[branch "my-branch"]
  remote = Origin
  merge = refs/heads/master
328
Highway of Life

Angenommen, Ihre Verzweigung wurde aus master erstellt, dann während Sie sich in der Verzweigung befinden (das heißt, Sie haben die Verzweigung ausgecheckt):

git cherry -v master

oder

git log master..

Wenn Sie nicht in der Verzweigung sind, können Sie den Verzweigungsnamen wie folgt zum Befehl "git log" hinzufügen:

git log master..branchname

Wenn Ihr Zweig aus Origin/master, dann sage Origin/master anstelle von master.

447
Wayne Conrad

Verwenden:

git log --graph --abbrev-commit --decorate  --first-parent <branch_name>

Es ist nur für den Zielzweig (natürlich --graph, --abbrev-commit --decorate sind polisihing).

Die Schlüsseloption ist --first-parent: "Folgen Sie nur dem ersten übergeordneten Commit, wenn ein Merge-Commit angezeigt wird" ( https://git-scm.com/docs/git-log )

Es verhindert, dass die Festschreibungsgabeln angezeigt werden.

80
yerlilbilgin

Wenn Sie nur die Festschreibungen wünschen, die Sie in einem bestimmten Zweig vorgenommen haben, verwenden Sie den folgenden Befehl.

git log branch_name --author='Dyaniyal'
16
Dyaniyal Wilson

Das Problem, das ich hatte und das meiner Meinung nach ähnlich ist, ist, dass der Meister meinem Verzweigungspunkt zu weit voraus war, als dass die Geschichte von Nutzen wäre. (Das Navigieren zum Verzweigungspunkt würde zu lange dauern.)

Nach einigem Ausprobieren gab mir das ungefähr das, was ich wollte:

git log --graph --decorate --oneline --all ^master^!
7
GPHemsley