Ausführen von git ls-tree
für Zweig und Datei
In diesem Schritt werden wir untersuchen, wie Sie den Inhalt eines bestimmten Zweigs und einer bestimmten Datei in Ihrem Git-Repository mithilfe des Befehls git ls-tree
anzeigen können. Dieser Befehl ist nützlich, um den Zustand Ihres Projekts zu einem bestimmten Zeitpunkt in der Geschichte oder in einem anderen Zweig zu untersuchen, ohne tatsächlich in diesen Zweig zu wechseln.
Zunächst stellen wir sicher, dass wir uns in unserem Projektverzeichnis befinden.
cd ~/project/my-time-machine
Jetzt erstellen wir einen neuen Zweig namens feature-branch
und wechseln in diesen. Wir werden dort eine neue Datei hinzufügen.
git branch feature-branch
git checkout feature-branch
echo "This is a new feature." > feature.txt
git add feature.txt
git commit -m "Add new feature file"
Nach dem Commit sollten Sie eine Ausgabe ähnlich dieser sehen:
[feature-branch a1b2c3d] Add new feature file
1 file changed, 1 insertion(+)
create mode 100644 feature.txt
Jetzt haben wir einen neuen Zweig feature-branch
mit einer Datei feature.txt
, die auf dem master
-Zweig nicht existiert.
Wechseln wir zurück zum master
-Zweig.
git checkout master
Sie sollten eine Ausgabe sehen, die angibt, dass Sie den Zweig gewechselt haben:
Switched to branch 'master'
Beachten Sie, dass die Datei feature.txt
in Ihrem aktuellen Verzeichnis nicht mehr sichtbar ist, da Sie sich auf dem master
-Zweig befinden.
Jetzt verwenden wir git ls-tree
, um den Inhalt des feature-branch
und speziell die Datei feature.txt
vom master
-Zweig aus anzuzeigen, ohne zurückzuwechseln.
Die grundlegende Syntax für git ls-tree
lautet git ls-tree <tree-ish> <path>
. <tree-ish>
kann ein Zweigname, ein Commit-Hash oder ein Tag sein. <path>
ist der Pfad zur Datei oder zum Verzeichnis, das Sie untersuchen möchten.
Um den Inhalt des Root-Verzeichnisses von feature-branch
anzuzeigen, können Sie Folgendes verwenden:
git ls-tree feature-branch
Sie sollten eine Ausgabe ähnlich dieser sehen, die die Dateien im Root von feature-branch
anzeigt:
100644 blob a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9 feature.txt
100644 blob f9e8d7c6b5a4938271605f4e3d2c1b0a98765432 message.txt
Diese Ausgabe zeigt den Dateimodus, den Objekttyp (blob für Datei), den Objekthash und den Dateinamen.
Um die Details einer bestimmten Datei, wie feature.txt
, auf dem feature-branch
anzuzeigen, können Sie Folgendes verwenden:
git ls-tree feature-branch feature.txt
Sie sollten eine Ausgabe ähnlich dieser speziell für feature.txt
sehen:
100644 blob a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9 feature.txt
Dieser Befehl ermöglicht es Ihnen, in andere Zweige oder vergangene Commits zu schauen, um den Zustand bestimmter Dateien zu sehen, ohne Ihr aktuelles Arbeitsverzeichnis zu ändern. Dies ist unglaublich nützlich, um Dateien zwischen Zweigen zu vergleichen oder historische Versionen zu untersuchen.