Ausführen von git tag --contains Commit
In diesem Schritt lernen wir, wie man den Befehl git tag --contains
verwendet, um herauszufinden, welche Tags einen bestimmten Commit enthalten. Dies ist nützlich, wenn Sie wissen möchten, welche Releases oder Versionen Ihres Projekts eine bestimmte Änderung enthalten.
Zunächst stellen wir sicher, dass wir uns im Verzeichnis unseres Projekts befinden. Öffnen Sie Ihr Terminal und navigieren Sie zum Verzeichnis my-time-machine
:
cd ~/project/my-time-machine
Jetzt erstellen wir ein paar Commits und Tags, mit denen wir arbeiten können. Wir fügen eine neue Datei hinzu und erstellen einen Commit:
echo "Another message for the future" > message2.txt
git add message2.txt
git commit -m "Add a second message"
Sie sollten eine Ausgabe ähnlich der folgenden sehen:
[master <commit-hash>] Add a second message
1 file changed, 1 insertion(+)
create mode 100644 message2.txt
Jetzt fügen wir diesem Commit ein Tag hinzu. Wir nennen es v1.0
:
git tag v1.0
Dieser Befehl erzeugt keine Ausgabe, aber er hat ein Tag erstellt, das auf den neuesten Commit zeigt.
Erstellen wir nun einen weiteren Commit ohne Tag:
echo "A third message" > message3.txt
git add message3.txt
git commit -m "Add a third message"
Sie sollten eine Ausgabe ähnlich der folgenden sehen:
[master <commit-hash>] Add a third message
1 file changed, 1 insertion(+)
create mode 100644 message3.txt
Jetzt haben wir zwei Commits und ein Tag. Verwenden wir git log --oneline
, um unseren Commit-Verlauf anzuzeigen:
git log --oneline
Sie sollten etwas wie Folgendes sehen (die Commit-Hashes werden unterschiedlich sein):
<commit-hash> (HEAD -> master) Add a third message
<commit-hash> (tag: v1.0) Add a second message
<commit-hash> Send a message to the future
Beachten Sie, dass das v1.0
-Tag mit dem Commit "Add a second message" verknüpft ist.
Jetzt finden wir heraus, welche Tags den Commit "Add a second message" enthalten. Dafür benötigen wir den Commit-Hash. Kopieren Sie aus der Ausgabe von git log --oneline
den Commit-Hash neben (tag: v1.0)
.
Ersetzen Sie <commit-hash>
durch den tatsächlich kopierten Hash und führen Sie den folgenden Befehl aus:
git tag --contains <commit-hash>
Sie sollten v1.0
in der Ausgabe sehen, da dieses Tag direkt auf diesen Commit zeigt.
Jetzt versuchen wir, herauszufinden, welche Tags den ersten Commit ("Send a message to the future") enthalten. Kopieren Sie den Commit-Hash für diesen Commit aus git log --oneline
.
Ersetzen Sie <first-commit-hash>
durch den tatsächlichen Hash und führen Sie aus:
git tag --contains <first-commit-hash>
Sie sollten immer noch v1.0
in der Ausgabe sehen. Dies liegt daran, dass v1.0
auf einem Commit liegt, der ein Nachfahren des ersten Commits ist. Die Option --contains
prüft, ob der angegebene Commit ein Vorfahr des Commits ist, auf den das Tag zeigt.
Dieser Befehl ist sehr hilfreich, wenn Sie feststellen müssen, welche Versionen Ihrer Software einen bestimmten Bugfix oder eine bestimmte Funktion enthalten.