以下设置适用于我:
DiffFormatter formatter = new DiffFormatter( System.out );formatter.setRepository( git.getRepository() );AbstractTreeIterator commitTreeIterator = prepareTreeParser( git.getRepository(), Constants.HEAD );FileTreeIterator workTreeIterator = new FileTreeIterator( git.getRepository() );List<DiffEntry> diffEntries = formatter.scan( commitTreeIterator, workTreeIterator );for( DiffEntry entry : diffEntries ) { System.out.println( "Entry: " + entry + ", from: " + entry.getOldId() + ", to: " + entry.getNewId() ); formatter.format( entry );}通过可以访问未提交的更改
FileTreeIterator。使用
formatter.scan()代替
DiffCommand的优点是格式化程序已正确设置以处理
FileTreeIterator。否则
MissingObjectException,当格式化程序尝试从存储库中的工作树中查找更改时,您将得到。



