2017-11-29 3 views
0

Wie kann ich zuerst git commit Nachricht auf einem Zweig nicht geschoben werden?Erste nicht gedrückte Commit-Nachricht

Angenommen, ich habe 3 Commits auf einem Zweig „new_branch“

third_commit 
second_commit 
first_commit 

Ich möchte ein Git-Befehl auszuführen, nur zurück commit erste Nachricht die nicht id begehen. Dank

+0

Was meinen Sie mit "commit name"? Könnten Sie bitte ein Beispiel geben? Innerhalb der Ausgabe von 'git log', welchen Teil möchten Sie erhalten? – ElpieKay

+0

ok, ich meine Commit Nachricht, ich werde die Frage aktualisieren – GeniDeveloper

+1

Wenn Sie ihre Commit - ID, 'git log --pretty =% B '. Wenn nicht, versuche 'git log --pretty =% B new_branch ~ 2'. – ElpieKay

Antwort

1

Wenn new_branch ist ausgecheckt und der Remote-Zweig wird als Upstream-Zweig von new_branch markiert (entweder weil Sie es von der Fern bekam oder wie es mit --set-upstream markiert beim Schieben) sollte dies für Sie arbeiten:

git show --quiet --pretty=%B $(git rev-list @{u}..HEAD | tail -n 1)` 

@{u} Verweise auf den Upstream-Zweig, also gibt Rev-List Ihnen alle Commits in Ihrer lokalen Zweigstelle, die nicht in der Remote-Zweig sind. tail -n 1 gibt Ihnen nur die niedrigste (= früheste) von denen. git show würde dieses Commit anzeigen, wobei --quiet das Diff versteckt und --pretty=%B nur die Commit-Nachricht dieses Commits ausgibt.

Wenn new_branch nicht aktiviert ist aus können Sie HEAD mit new_branch und @{u} mit dem Hinweis auf den entfernten Zweig (z origin/new_branch) ersetzen. Der spätere würde auch helfen, wenn der Upstream von new_branch nicht konfiguriert ist.

1

git reflog wird alle Commit-Namen anzeigen. see the git page

+0

Das ist nicht hilfreich, weil es mir nicht gibt, was ich brauche. – GeniDeveloper

+0

Können Sie mehr ausarbeiten, was genau Sie sehen möchten? –

Verwandte Themen