2017-03-23 3 views
0

Dies ist mein vollständiges Git Protokoll.git logursprung/master..HEAD aber Ursprung/master selbst enthalten

$ git log --oneline --decorate 

77cbdda (HEAD -> master) file4 
8afab80 file3 
9a4cd72 file2 
76c2efc (origin/master) file1 

Ich möchte Protokoll vom Ursprung/Master zu HEAD bekommen. Als ich

$ git log --oneline --decorate origin/master..HEAD 

versucht habe ich log msg wie unten

77cbdda (HEAD -> master) file4 
8afab80 file3 
9a4cd72 file2 

Aber was ich will, wie unten.

77cbdda (HEAD -> master) file4 
8afab80 file3 
9a4cd72 file2 
76c2efc (origin/master) file1 

Wie kann ich Log-Nachricht wie das bekommen?

+0

Ich denke '76c2efc (Herkunft/Master)' ist Ihr allererstes Commit. Also, wenn Sie "Ursprung/Meister ~ 1" versuchen, existiert es nicht in Ihrem Arbeitsbaum –

Antwort

2

Gebrauch ~ 1

git log --oneline --decorate origin/master~1..HEAD

+0

Ich habe das bereits versucht. Aber ich habe Fehler msg wie unten ---> fatal: mehrdeutiges Argument 'Herkunft/Master ~ 1..HEAD': unbekannte Revision oder Pfad nicht im Arbeitsbaum .... – killinggun

+0

Wird es funktionieren als OP wollen, wenn 'Herkunft/Master ist Merge Commit? – PetSerAl

1

origin/master..HEAD bedeutet, was in HEAD existiert die nicht in Herkunft/Master ist.

9a4cd72 (origin/master) file2 existiert sowohl HEAD und origin/master so, es ist nicht in der Liste

$ git log --oneline --decorate origin/master~1..HEAD 

Dies sollte funktionieren, wenn 76c2efc (origin/master) Ihre erste zu begehen ist. Wenn Sie versuchen, origin/master~1, erhalten Sie Fehler, weil es nicht in Ihrem Arbeitsbaum tatsächlich vorhanden ist.

0

Ich habe den Grund, warum ich bekam eine Fehlermeldung anzeigt, wenn ich

$ git log --oneline --decorate origin/master~1..HEAD 

Befehl, der ist, weil origin/master die erste zu begehen war. Wenn es ein zweites Commit oder mehr war, gibt es keinen Fehler.

Danke Edmundo.

+0

Rechts: Das Problem ist, dass "~ 1" "weiter zurück" bedeutet und es keine Möglichkeit gibt, weiter zurück zu gehen. Glücklicherweise, da der ganze Punkt von 'stop..start' ist,' stop'-and-friorher auszuschließen, sobald Sie wissen, dass es nichts früher gibt, können Sie einfach 'start' hier verwenden. – torek

+0

@torek Wie wäre es mit 'git start - nicht aufhören^@'? – PetSerAl

+0

@PetSerAl: interessant; das sollte für den allgemeinen Fall funktionieren (obwohl du es normalerweise '^ stop^@' buchstabieren würdest, '--not' beharrt bis zu einem anderen' --not'-Art von einem subtilen Punkt ...). Es ist besser als "grenzwertig", da "grenzwertig" * zu viele * commits enthalten kann. – torek

0

können Sie

git log --oneline --decorate HEAD --not origin/master^@ 

Verwendung Das origin/master^@ alle Eltern von origin/master begehen, wenn es eins, null oder viele wählen. Und --not wird diese Commits (und ihre Eltern) von der Auflistung ausschließen.

Hinweis: Sie müssen alle Eltern auszuschließen verpflichtet, denn wenn man nur Fern Elternteil origin/master~1 ausschließen, begeht dann aus allen fusionierten Filialen wurde im Falle aufgeführt wird origin/master begehen wird fusionieren.