Um die Dateien aufzulisten, die eine Festschreibung bilden, müssen Sie TreeWalk
verwenden. A TreeWalk
kann mit der Objekt-ID (SHA-1) eines Baumes initialisiert werden und anschließend über seine Einträge durchlaufen werden.
Zum Beispiel:
TreeWalk treeWalk = new TreeWalk(repository);
treeWalk.setRecursive(true);
treeWalk.reset(commit.getId());
while(treeWalk.next()) {
String path = treeWalk.getPathString();
String blobId = treeWalk.getObjectId(0);
// ...
}
getPathString()
liefert den (repository-relative) Pfad zum aktuellen Eintrag.
getObjectId()
erwartet einen Index, der den Baumiterator identifiziert, von dem die Objekt-ID abgerufen werden soll. Hier wird der erste und einzige Tree-Iterator angegeben, der implizit von reset()
für den Baum des angegebenen Commits erstellt wurde.
Möchten Sie _all_ Dateien auflisten, die ein Commit oder die _changed_ Dateien bilden (d. H. Datei, die sich vom übergeordneten Commit unterscheidet)? –
danke rüdiger für deine antwort, ich möchte die geänderten dateien .. – szumbe
Dann solltest du deine frage umschreiben um das zu reflektieren. 'git show' listet den Inhalt eines Git-Objekts auf (commit/blob/tree). Um _changes_ aufzulisten benutze 'git diff'. Sehen Sie hier, wie Sie das mit JGit erreichen können: http://stackoverflow.com/questions/27361538/how-to-show-changes-between-commits-with-jgit –