2012-04-10 13 views
7

Ich bin auf der Suche nach einer Möglichkeit, auf die gleiche Weise wie ls-tree, aber von meinem Arbeitsverzeichnis ausgegeben zu haben. Wann immer ich git ls-tree . laufen lasse, sagt es fatal: Not a valid object name .git ls-tree Ausgabe des Arbeitsverzeichnisses?

+0

'git ls-files' wahrscheinlich mit' -m'? – Mikel

+1

git ls-tree -r HEAD –

Antwort

14

git ls-tree arbeitet nur mit git refs, z. ls-tree HEAD.

Versuchen Sie git ls-files. Sie möchten wahrscheinlich die -s und/oder -m Flags.


Wie Sie weisen darauf hin, git ls-files -s werden die Dateien im Index (das heißt Dateien, die inszeniert wurden) aufzulisten.

In der Theorie könnten Sie sich mit dem Index, git ls-files -s, dann versuchen, es wiederherzustellen, z.

Scheint richtig, und arbeitete in einem einfachen Test, könnte aber alle Ihre Dateien essen.

+0

Vielen Dank. Ich denke, dass das, was ich gefragt habe, unmöglich ist. Der Grund dafür ist, dass es kein Hash-Objekt für Dateien im Arbeitsverzeichnis gibt. Für den _index_ gibt es natürlich Hash-Objekte, wie Sie durch das Vorschlagen des Flags "-s" darauf hingewiesen haben. Dies ist nicht genau die gleiche Ausgabe, aber ich möchte nicht die Funktionalität anderer Git-Befehle neu erstellen. :) –

+0

Es scheint, dass '-m' nicht den gewünschten Effekt hat, wie Sie andeuten. Ich hatte eine Liste mit dem Arbeitsverzeichnis und nicht mit dem Index. Siehe aktualisierte Antwort. Und testen Sie, bevor Sie es mit Ihren realen Daten tun. :-) – Mikel

Verwandte Themen