@Override
  protected void actionPerformed(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();
    }
  }
@Override
  protected void actionPerformed(final @NotNull Project project, final @NotNull Map<GitRepository, VcsFullCommitDetails> commits)