2012-10-24 2 views
7

Wie bekomme ich eine Liste aller Dateien, die in einer Branche geändert wurden? Ich kann kein git-diff machen, da die Verzweigung bereits in master eingebunden ist.Git eine Liste aller Dateien in einer Branche geändert

Ich würde einen Weg brauchen, um alle Commits in einer Verzweigung aufzulisten und den Pfad der Dateien ohne Duplikate zu extrahieren.

Wenn jemand etwas wie dies geschehen ist, bevor es wirklich geschätzt wird,

vielen Dank!

Antwort

1

Dies funktioniert, wenn der Zweig der Zusammenführung zeigt begehen:

git diff branch_name^..master --name-only 
3

Wenn wir Ihre Branche betrachten als BranchA wich von Master verzweigt wurde, können Sie tun:

git diff --name-status `git merge-base BranchA master`..BranchA 

Damit erhalten Sie die Liste der geänderten Dateien in der Verzweigung mit dem Präfix Status (M für modifiziert, A für hinzugefügt, D für gelöscht).

2

Tun Sie eine git log und herauszufinden, aus welchen Commit wollen Sie die Unterschiede kennen. Angenommen, Sie legen fest, dass der Hashwert des gewünschten Commits aaaaaa lautet. Dann:

git diff aaaaaa --stat 
0

Ich stieß auf das gleiche Problem und @Michael Burtin Lösung arbeitete zum größten Teil. Ich wollte dies jedoch zu einem Skript hinzufügen, das in jedem Zweig funktioniert und daher den Zweignamen nicht enthalten kann. Das ist, was ich kam mit:

git diff --name-only $(git merge-base master HEAD) 

, die den Schrank Vorfahren des Master und den aktuellen Zweig findet, dann Differentiale, die mit dem aktuellen Zweig zu begehen.