GIT Holen Sie sich die commit-hash vor, um eine bestimmte commit
git 1.7.1
git show <hash>:<file>
gibt mir die Datei basierend auf den commit-hash
Ich versuche herauszufinden, wie, um Wette in der Datei von der vorherigen commit vor dem, der hash, die ich habe.
Ich weiß, ich kann immer die log
um alle hashes und herauszufinden, die ich brauche, aber ist das nicht eine gute Lösung in meinem Fall bin ich versucht zu minimieren die Anzahl der Befehle, die ich tun müssen, um für performance-Probleme.
Frage mich, ob es eine einfache Möglichkeit.
- Sie sind auf der Suche, rückwärts zu gehen durch die Geschichte, aus zu Begehen (einer Ihrer) Elternteil(en), oder nach vorne, aus zu Begehen (einer Ihrer) Kind(ern)? Ersteres ist trivial (verwenden Sie die
^
oder~
Notationen), das letztere ist schwierig (siehe stackoverflow.com/questions/2263674/...). - Ich versuche, rückwärts zu gehen.
git show --format="%P" <SHA>
zeigt Ihnen alle Eltern einer bestimmtenSHA
. Getestet aufgit 1.8.5.2
. Fand die Antwort von diesem: stackoverflow.com/a/7211140/630866- Ihre Titel nicht angeben, dies ist die commit einer bestimmten Datei. Ich brauche die Allgemeine last Begehen, und nur der hash.
- Ich nicht Folgen. Kannst du bitte anders formulieren.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
git show HEAD^1
. Sie können ersetzenHEAD
mit Ihren commit-hashBearbeiten, mehrere Eltern zu berücksichtigen:
In Fall, dass Sie wollen, um zu sehen, alle Eltern, die für eine commit-hash, den Sie verwenden können
git rev-list --parents -n 1 <commithash>
oder verwenden Siegit show
wie @Bhaskar schlug in den Kommentaren die Frage stellen.Dem sind andere Wege, als auch erklärt hier.
HEAD
hat mehr als ein Elternteil, ist dieser Befehl zeigt dir nur die erste einer von Ihnen.git show <sha>^1:<file>
zeigt die Datei so wie Sie ist in die ersten Eltern, und werden, was gewollt ist, die meisten der Zeit...