@Override
      public void actionPerformed(@NotNull AnActionEvent e) {
        GitRepository repository = myRepositories.get(0);
        GitRemoteBranch remoteBranch = Objects.requireNonNull(repository.getBranches().findRemoteBranch(myBranchName));
        String suggestedLocalName = remoteBranch.getNameForRemoteOperations();

        GitNewBranchOptions newBranchOptions = new GitNewBranchOptions(suggestedLocalName, false, true);
        // can have remote conflict if git-svn is used  - suggested local name will be equal to selected remote
        if (BRANCH_NAME_HASHING_STRATEGY.equals(myBranchName, suggestedLocalName)) {
          newBranchOptions = askBranchName(suggestedLocalName);
          if (newBranchOptions == null) return;
        }

        String localName = newBranchOptions.getName();
        Map<GitRepository, GitLocalBranch> conflictingLocalBranches = map2MapNotNull(myRepositories, r -> {
          GitLocalBranch local = r.getBranches().findLocalBranch(localName);
          return local != null ? Pair.create(r, local) : null;
        });

        if (hasTrackingConflicts(conflictingLocalBranches, myBranchName)) {
          newBranchOptions = askBranchName(localName);
          if (newBranchOptions == null) return;
        }

        GitCheckoutAndRebaseRemoteBranchWorkflow workflow = new GitCheckoutAndRebaseRemoteBranchWorkflow(myProject, myRepositories);
        workflow.execute(remoteBranch.getNameForLocalOperations(), newBranchOptions);
      }
@Override
      public void actionPerformed(@NotNull AnActionEvent e)