Wie kann ich mit der Befehlszeile den letzten Commit-Hash eines bestimmten Git-Zweiges überprüfen?Befehl zum Abrufen des letzten Git-Commit-Hash von einer Verzweigung
Antwort
Verwendung git ls-remote git://github.com/<user>/<project>.git
.Zum Beispiel gibt meine trac-Rückstand Projekt:
:: git ls-remote git://github.com/jszakmeister/trac-backlog.git
5d6a3c973c254378738bdbc85d72f14aefa316a0 HEAD
4652257768acef90b9af560295b02d0ac6e7702c refs/heads/0.1.x
35af07bc99c7527b84e11a8632bfb396823326f3 refs/heads/0.2.x
5d6a3c973c254378738bdbc85d72f14aefa316a0 refs/heads/master
520dcebff52506682d6822ade0188d4622eb41d1 refs/pull/11/head
6b2c1ed650a7ff693ecd8ab1cb5c124ba32866a2 refs/pull/11/merge
51088b60d66b68a565080eb56dbbc5f8c97c1400 refs/pull/12/head
127c468826c0c77e26a5da4d40ae3a61e00c0726 refs/pull/12/merge
2401b5537224fe4176f2a134ee93005a6263cf24 refs/pull/15/head
8aa9aedc0e3a0d43ddfeaf0b971d0ae3a23d57b3 refs/pull/15/merge
d96aed93c94f97d328fc57588e61a7ec52a05c69 refs/pull/7/head
f7c1e8dabdbeca9f9060de24da4560abc76e77cd refs/pull/7/merge
aa8a935f084a6e1c66aa939b47b9a5567c4e25f5 refs/pull/8/head
cd258b82cc499d84165ea8d7a23faa46f0f2f125 refs/pull/8/merge
c10a73a8b0c1809fcb3a1f49bdc1a6487927483d refs/tags/0.1.0
a39dad9a1268f7df256ba78f1166308563544af1 refs/tags/0.2.0
2d559cf785816afd69c3cb768413c4f6ca574708 refs/tags/0.2.1
434170523d5f8aad05dc5cf86c2a326908cf3f57 refs/tags/0.2.2
d2dfe40cb78ddc66e6865dcd2e76d6bc2291d44c refs/tags/0.3.0
9db35263a15dcdfbc19ed0a1f7a9e29a40507070 refs/tags/0.3.0^{}
Nur grep für die, die Sie brauchen, und schneiden Sie es aus:
:: git ls-remote git://github.com/jszakmeister/trac-backlog.git | \
grep refs/heads/master | cut -f 1
5d6a3c973c254378738bdbc85d72f14aefa316a0
Oder können Sie festlegen, welche Refs Sie auf der Kommandozeile wollen und vermeiden grep mit:
:: git ls-remote git://github.com/jszakmeister/trac-backlog.git refs/heads/master | \
cut -f 1
5d6a3c973c254378738bdbc85d72f14aefa316a0
Hinweis: es ist nicht die git://
uRL sein muss, könnte es https://
oder [email protected]:
sein.
Dank jszakmeister, löste es mein Problem – mbdvg
verdient mehr Liebe. Das funktioniert wunderbar. – SuperFamousGuy
Versuchen Sie git log -n 1
nach einer git checkout branchname
. Dies zeigt die Commit-Hash-, Autor-, Datums- und Commit-Nachricht für das neueste Commit.
Führen Sie zuerst eine git pull origin/branchname
aus, um sicherzustellen, dass Ihr lokales Repo mit dem Upstream übereinstimmt.
Wenn vielleicht würden Sie nur eine Liste der Commits sehen, wie Sie Ihre lokale Niederlassung befindet sich hinter auf dem Remote-Zweig dies zu tun:
git fetch origin
git cherry localbranch remotebranch
Dadurch werden alle Hashes der Commits Liste, die Sie noch nicht fusioniert in Ihre lokale Niederlassung.
meine Anforderung ist es, lokale Repositories zu überprüfen und Github-Repositories Commit Hash sind gleich oder nicht, wie können wir das tun? – mbdvg
Soweit ich weiß, gibt es keine Möglichkeit, dass sich die Commit-Hashes zwischen Ihren lokalen und Ihren Remote-Repos für die gleichen Commits unterscheiden. Haben Sie vielleicht eine Liste der Commits gemeint, die Ihr lokales Repository im Vergleich zum Remote-Repository fehlt? –
Ja Rick van, es gibt eine Nichtübereinstimmung, also, ich möchte zeigen, dass es einen Unterschied in lokalen und Github Repo gibt, So brauchen Sie einen Weg, um herauszufinden, – mbdvg
Sie können git fetch nameofremoterepo
, dann git log
und ich persönlich alias gitlog
zu git log --graph --oneline --pretty --decorate --all
. ausprobieren und sehen, ob es Ihnen
Und git fetch zieht die Änderungen noch nicht – nglinh
'--online 'ist eine Abkürzung für' --pretty = oneline --abbrev-commit'. Aber du verwendest auch '--pretty', was' --pretty = oneline' zurücknimmt ... Ich würde stattdessen 'git log --graph --abbrev-commit --decorate --all' empfehlen. –
Kühl. Das habe ich nicht bemerkt. Vielen Dank! – nglinh
In einem Kommentar passt schrieb man
möchte ich zeigen, dass es einen Unterschied in der lokalen und GitHub Repo ist
Wie bereits in einer anderen Antwort erwähnt, Sie sollten zuerst eine git fetch origin
tun. Wenn dann die Fernbedienung vor Ihrem aktuellen Zweig ist, können Sie alle Commits zwischen Ihrer lokalen Niederlassung Liste und der Fernbedienung mit
git log master..origin/master --stat
Wenn Ihre lokalen Niederlassung voraus ist:
git log origin/master..master --stat
--stat
zeigt eine Liste von geänderten Dateien auch.
Wenn Sie die Ergänzungen und Streichungen explizit aufzulisten, verwenden git diff
:
git diff master origin/master
git log -n 1 [branch_name]
branch_name
(kann remote oder lokal Zweig sein) ist optional. Ohne branch_name
wird das neueste Commit für den aktuellen Zweig angezeigt.
Zum Beispiel:
git log -n 1
git log -n 1 origin/master
git log -n 1 some_local_branch
git log -n 1 --pretty=format:"%H" #To get only hash value of commit
git log -n 1 --pretty = format: "% H" funktioniert perfekt für mich – Jaro
Get short hash: 'git rev-parse --short --verify my_branch' von ähnlichen Fragen: http://stackoverflow.com/ a/949391/134761 – angularsen
Beachten Sie, dass bei Verwendung der Option "git log -n 1 [branch_name]". -n gibt nur eine Zeile des Protokolls zurück, aber die Reihenfolge, in der diese zurückgegeben wird, ist nicht garantiert. Im Folgenden Auszug aus git-log-man-Seite
.....
.....
Commit Limiting
Besides specifying a range of commits that should be listed using the special notations explained in the description, additional commit limiting may be applied.
Using more options generally further limits the output (e.g. --since=<date1> limits to commits newer than <date1>, and using it with --grep=<pattern> further limits to commits whose log message has a line that matches <pattern>), unless otherwise noted.
Note that these are applied before commit ordering and formatting options, such as --reverse.
-<number>
-n <number>
.....
.....
- 1. Windows-Befehl zum Abrufen des Dienststatus?
- 2. REST-API zum Abrufen des letzten Analysedatums des Projekts?
- 3. Befehl zum Abrufen des Dienststatus von mac os
- 4. Befehl von Aktionsaufruf abrufen
- 5. Exit-Code des letzten Shellbefehls in einem anderen Skript abrufen
- 6. Abrufen des letzten Änderungsdatums einer Datei in VB6
- 7. Abrufen des letzten Änderungsdatums einer Datei in Java
- 8. Datum des letzten erfolgreichen Joblaufs abrufen?
- 9. Kalender - Letzten Tag des vorherigen Monats abrufen
- 10. Abrufen des letzten verknüpften Datensatzes in LINQ?
- 11. C# HttpWebRequest Befehl zum Abrufen der Verzeichnisliste
- 12. Einfachster Befehl zum Abrufen einer schreibgeschützten Kopie eines Git-Repositorys?
- 13. sed Befehl zum Abrufen der Portnummer
- 14. Wie unterscheidet sich eine annullierte Verzweigung von einer regulären Verzweigung?
- 15. Abrufen des Miniaturbilds von einer Webseite
- 16. Regex zum Entfernen des letzten einzelnen Sonderzeichens
- 17. Batch-Datei zum Abrufen der Datei aus dem letzten Ordner
- 18. AIX Unix-Befehl zum Abrufen des ersten Elements, dann zum nächsten gehen
- 19. Befehl zum Hinzufügen einer Standardeinschränkung
- 20. Abrufen des Werts einer Listbox zum dynamischen Ändern mit Arbeitsblättern
- 21. Hilfe zum Verständnis des letzten Teils von ember.js tutorial
- 22. Partitionieren einer Tabelle zum Abrufen von Datumsbereichen
- 23. Abrufen von Sekunden seit dem letzten Datensatz
- 24. Befehl zum Überprüfen des Lese-/Schreibverhältnisses?
- 25. Letzten aktualisierten Datensatz abrufen
- 26. Abrufen des Seitentitels von einer geschabt Webseite
- 27. Node.js Programmierungsmuster zum Abrufen des Ausführungskontexts
- 28. Git Branch zum letzten Commit zurücksetzen? Schienen
- 29. Wo zum Speichern einer VisualSvn-Verzweigung oder Stamm zu kompilieren
- 30. ipython-Funktion zum Senden des letzten Befehls an das Skript
Haben Sie versucht, ‚git log -n 1‘ verwenden, wenn Sie haben, dass bestimmte Zweig ausgecheckt? –
git log gibt lokalen Repositorys Hash, aber git hub repository hat neuen Hash. – mbdvg
'git log -n 1 [Zweigname]' Zweigname (kann remote oder lokale Verzweigung sein) ist optional. Ohne branch_name wird das letzte Commit des aktuellen Zweiges angezeigt. – codeit