public override void CheckoutBranch(string branch) { var fullBranchName = "refs/heads/" + branch; var list = _git.BranchList().Call(); var branchExists = list.Any(x => x.GetName() == fullBranchName); if (!branchExists) { var remoteBranchName = "refs/remotes/origin/" + branch; _git.BranchCreate().SetStartPoint(remoteBranchName).SetName(branch).Call(); } _git.Checkout().SetName(branch).Call(); BatchingProgressMonitor.ShutdownNow(); }