Function: magit-branch-or-checkout

magit-branch-or-checkout is an autoloaded, interactive and byte-compiled function defined in magit-branch.el.

Signature

(magit-branch-or-checkout ARG &optional START-POINT)

Documentation

Hybrid between magit-checkout and magit-branch-and-checkout.

Ask the user for an existing branch or revision. If the user input actually can be resolved as a branch or revision, then check that out, just like magit-checkout would.

Otherwise create and checkout a new branch using the input as its name. Before doing so read the starting-point for the new branch. This is similar to what magit-branch-and-checkout does.

Key Bindings

Source Code

;; Defined in ~/.emacs.d/elpa/magit-20260411.1452/magit-branch.el
;;;###autoload
(defun magit-branch-or-checkout (arg &optional start-point)
  "Hybrid between `magit-checkout' and `magit-branch-and-checkout'.

Ask the user for an existing branch or revision.  If the user
input actually can be resolved as a branch or revision, then
check that out, just like `magit-checkout' would.

Otherwise create and checkout a new branch using the input as
its name.  Before doing so read the starting-point for the new
branch.  This is similar to what `magit-branch-and-checkout'
does."
  (declare (interactive-only magit-call-git))
  (interactive
    (let ((arg (magit-read-other-branch-or-commit "Checkout")))
      (list arg
            (and (not (magit-commit-p arg))
                 (magit-read-starting-point "Create and checkout branch" arg)))))
  (when (string-match "\\`heads/\\(.+\\)" arg)
    (setq arg (match-str 1 arg)))
  (if start-point
      (with-suppressed-warnings ((interactive-only magit-branch-and-checkout))
        (magit-branch-and-checkout arg start-point))
    (magit--checkout arg)
    (magit-refresh)))