void (final @NotNull Project project, final @NotNull Map<GitRepository, VcsFullCommitDetails> commits) { GitVcsSettings settings = GitVcsSettings.getInstance(project); GitResetMode defaultMode = ObjectUtils.notNull(settings.getResetMode(), GitResetMode.getDefault()); GitNewResetDialog dialog = new GitNewResetDialog(project, commits, defaultMode); if (dialog.showAndGet()) { final GitResetMode selectedMode = dialog.getResetMode(); settings.setResetMode(selectedMode); new Task.Backgroundable(project, GitBundle.message("git.reset.process"), true) { @Override public void run(@NotNull ProgressIndicator indicator) { Map<GitRepository, Hash> hashes = commits.keySet().stream().collect( Collectors.toMap(Function.identity(), repo -> commits.get(repo).getId())); new GitResetOperation(project, hashes, selectedMode, indicator).execute(); } }.queue(); } }