git: Wie man Commits in einem einzelnen Zweig anzeigt

8

Ein Kollege hat einen lokalen Zweig ('branchA') vom Master erstellt, etwas gearbeitet, ihn geschoben, in den Master eingearbeitet, etwas mehr Arbeit gemacht und ihn erneut gedrückt. Gleichzeitig haben andere Kollegen an anderen Zweigen gearbeitet und sie zu einem Master zusammengeführt.

Jetzt muss ich branchA ziehen, um es zu überprüfen. Also habe ich ein git pull und git checkout -b branchA origin/branchA gemacht, was in Ordnung ist. Aber alle Befehle (git diff / log / show) zeigen Commits über alle Zweige im Repo.

Wie kann ich ein diff aller commits anzeigen, die für branchA mit der Version des Masters erstellt wurden, aus dem es erstellt wurde?

Wie kann ich git diff branchA gegen den aktuellen HEAD des Masters setzen, sondern nur Dateien anzeigen, die innerhalb von branchA geändert wurden?

    
user1491250 01.08.2012, 10:51
quelle

5 Antworten

10

Für Ihre zweite Frage gilt, wie Sie die Unterschiede zwischen branchA und der aktuellen Version Ihrer lokalen Version von master finden. Sie möchten die 'Doppelpunkt'-Syntax mit git log verwenden, um alle Commits in branchA zu sehen, die nicht in master sind. Um zu sagen:

%Vor%

Für die git log man-Seite:

%Vor%

Wenn Sie Commits in master oder branchA sehen möchten, aber nicht in beiden, können Sie die 'triple-dot'-Syntax verwenden:

%Vor%

Schließlich können Sie mit git diff genau die gleiche Syntax verwenden, nämlich git diff master..branchA bzw. git diff master...branchA .

Wenn Sie branchA ausgecheckt haben, müssen Sie es nicht einmal als <until> angeben. Git übernimmt HEAD , wenn es nicht spezifiziert ist, also sind diese beiden Befehlssätze äquivalent:

%Vor%

und

%Vor%     
Christopher 01.08.2012, 11:20
quelle
2
  1. git diff master..brnachA : vergleicht alle modifizierten Dateien zwischen HEAD von Master und branchA.
  2. git diff master...brnachA : vergleicht branchA mit der Version des Masters, aus dem es erstellt wurde.

FYI: git diff generiert die Ausgabe in der Befehlszeile. Wenn Sie die Ausgabe in einigen visuellen Tools sehen möchten, verwenden Sie git difftool .

Sie können auch alle git diff Argumente und Optionen an git difftool übergeben.

    
Karthik Bose 01.08.2012 11:27
quelle
0

können Sie verwenden git log --branches = meinbauch

Dies zeigt an, dass eine bestimmte Verzweigung protokolliert wird

    
forvaidya 01.08.2012 11:09
quelle
0

Git-Commits enthalten keine Informationen darüber, "auf welchem ​​Zweig" sie ausgeführt wurden. Sie geben dir nur einen Punkt in dem Baum, von dem du zurückgehen kannst. Sobald eine Zusammenführung erfolgt, haben Sie keine Möglichkeit, aus einem Zusammenführungs-Commit zu entscheiden, welcher Elternteil von der Niederlassung kam, von der Sie angefangen haben. Dies wird in einigen Details hier diskutiert.

Das ist mein Verständnis. Ich würde gerne korrigiert werden, wenn ich falsch liege.

    
Noufal Ibrahim 01.08.2012 11:22
quelle
0

git log HEAD..branch, wenn Sie in der Master-Zweig sind.

Sehen Sie hier für weitere Einzelheiten: Wie kommt man hin? die Änderungen an einem Zweig in git

    
clearwater82 01.08.2012 11:30
quelle

Tags und Links