git-switch(1)
=============

NAME
----
git-switch - Switch branches

SYNOPSIS
--------
[synopsis]
git switch [<options>] [--no-guess] <branch>
git switch [<options>] --detach [<start-point>]
git switch [<options>] (-c|-C) <new-branch> [<start-point>]
git switch [<options>] --orphan <new-branch>

DESCRIPTION
-----------
Switch to a specified branch. The working tree and the index are
updated to match the branch. All new commits will be added to the tip
of this branch.

Optionally a new branch could be created with either `-c`, `-C`,
automatically from a remote branch of same name (see `--guess`), or
detach the working tree from any branch with `--detach`, along with
switching.

Switching branches does not require a clean index and working tree
(i.e. no differences compared to `HEAD`). The operation is aborted
however if the operation leads to loss of local changes, unless told
otherwise with `--discard-changes` or `--merge`.

THIS COMMAND IS EXPERIMENTAL. THE BEHAVIOR MAY CHANGE.

OPTIONS
-------
_<branch>_::
	Branch to switch to.

_<new-branch>_::
	Name for the new branch.

_<start-point>_::
	The starting point for the new branch. Specifying a
	_<start-point>_ allows you to create a branch based on some
	other point in history than where `HEAD` currently points. (Or,
	in the case of `--detach`, allows you to inspect and detach
	from some other point.)
+
You can use the `@{-<N>}` syntax to refer to the _<N>_-th last
branch/commit switched to using `git switch` or `git checkout`
operation. You may also specify `-` which is synonymous to `@{-1}`.
This is often used to switch quickly between two branches, or to undo
a branch switch by mistake.
+
As a special case, you may use `<rev-a>...<rev-b>` as a shortcut for the merge
base of _<rev-a>_ and _<rev-b>_ if there is exactly one merge base. You can leave
out at most one of _<rev-a>_ and _<rev-b>_, in which case it defaults to `HEAD`.

`-c <new-branch>`::
`--create <new-branch>`::
	Create a new branch named _<new-branch>_ starting at
	_<start-point>_ before switching to the branch. This is the
	transactional equivalent of
+
------------
$ git branch <new-branch>
$ git switch <new-branch>
------------
+
that is to say, the branch is not reset/created unless `git switch` is
successful (e.g., when the branch is in use in another worktree, not
just the current branch stays the same, but the branch is not reset to
the start-point, either).

`-C <new-branch>`::
`--force-create <new-branch>`::
	Similar to `--create` except that if _<new-branch>_ already
	exists, it will be reset to _<start-point>_. This is a
	convenient shortcut for:
+
------------
$ git branch -f _<new-branch>_
$ git switch _<new-branch>_
------------

`-d`::
`--detach`::
	Switch to a commit for inspection and discardable
	experiments. See the "DETACHED HEAD" section in
	linkgit:git-checkout[1] for details.

`--guess`::
`--no-guess`::
	If _<branch>_ is not found but there does exist a tracking
	branch in exactly one remote (call it _<remote>_) with a
	matching name, treat as equivalent to
+
------------
$ git switch -c <branch> --track <remote>/<branch>
------------
+
If the branch exists in multiple remotes and one of them is named by
the `checkout.defaultRemote` configuration variable, we'll use that
one for the purposes of disambiguation, even if the _<branch>_ isn't
unique across all remotes. Set it to e.g. `checkout.defaultRemote=origin`
to always checkout remote branches from there if _<branch>_ is
ambiguous but exists on the 'origin' remote. See also
`checkout.defaultRemote` in linkgit:git-config[1].
+
`--guess` is the default behavior. Use `--no-guess` to disable it.
+
The default behavior can be set via the `checkout.guess` configuration
variable.

`-f`::
`--force`::
	An alias for `--discard-changes`.

`--discard-changes`::
	Proceed even if the index or the working tree differs from
	`HEAD`. Both the index and working tree are restored to match
	the switching target. If `--recurse-submodules` is specified,
	submodule content is also restored to match the switching
	target. This is used to throw away local changes.

`-m`::
`--merge`::
	If you have local modifications to one or more files that are
	different between the current branch and the branch to which
	you are switching, the command refuses to switch branches in
	order to preserve your modifications in context.  However,
	with this option, a three-way merge between the current
	branch, your working tree contents, and the new branch is
	done, and you will be on the new branch.
+
When a merge conflict happens, the index entries for conflicting
paths are left unmerged, and you need to resolve the conflicts
and mark the resolved paths with `git add` (or `git rm` if the merge
should result in deletion of the path).

`--conflict=<style>`::
	The same as `--merge` option above, but changes the way the
	conflicting hunks are presented, overriding the
	`merge.conflictStyle` configuration variable.  Possible values are
	`merge` (default), `diff3`, and `zdiff3`.

`-q`::
`--quiet`::
	Quiet, suppress feedback messages.

`--progress`::
`--no-progress`::
	Progress status is reported on the standard error stream
	by default when it is attached to a terminal, unless `--quiet`
	is specified. This flag enables progress reporting even if not
	attached to a terminal, regardless of `--quiet`.

`-t`::
`--track[ (direct|inherit)]`::
	When creating a new branch, set up "upstream" configuration.
	`-c` is implied. See `--track` in linkgit:git-branch[1] for
	details.
+
If no `-c` option is given, the name of the new branch will be derived
from the remote-tracking branch, by looking at the local part of the
refspec configured for the corresponding remote, and then stripping
the initial part up to the "*".  This would tell us to use `hack` as
the local branch when branching off of `origin/hack` (or
`remotes/origin/hack`, or even `refs/remotes/origin/hack`).  If the
given name has no slash, or the above guessing results in an empty
name, the guessing is aborted.  You can explicitly give a name with
`-c` in such a case.

`--no-track`::
	Do not set up "upstream" configuration, even if the
	`branch.autoSetupMerge` configuration variable is true.

`--orphan <new-branch>`::
	Create a new unborn branch, named _<new-branch>_. All
	tracked files are removed.

`--ignore-other-worktrees`::
	`git switch` refuses when the wanted ref is already
	checked out by another worktree. This option makes it check
	the ref out anyway. In other words, the ref can be held by
	more than one worktree.

`--recurse-submodules`::
`--no-recurse-submodules`::
	Using `--recurse-submodules` will update the content of all
	active submodules according to the commit recorded in the
	superproject. If nothing (or `--no-recurse-submodules`) is
	used, submodules working trees will not be updated. Just
	like linkgit:git-submodule[1], this will detach `HEAD` of the
	submodules.

EXAMPLES
--------

The following command switches to the "master" branch:

------------
$ git switch master
------------

After working in the wrong branch, switching to the correct branch
would be done using:

------------
$ git switch mytopic
------------

However, your "wrong" branch and correct "mytopic" branch may differ
in files that you have modified locally, in which case the above
switch would fail like this:

------------
$ git switch mytopic
error: You have local changes to 'frotz'; not switching branches.
------------

You can give the `-m` flag to the command, which would try a three-way
merge:

------------
$ git switch -m mytopic
Auto-merging frotz
------------

After this three-way merge, the local modifications are _not_
registered in your index file, so `git diff` would show you what
changes you made since the tip of the new branch.

To switch back to the previous branch before we switched to mytopic
(i.e. "master" branch):

------------
$ git switch -
------------

You can grow a new branch from any commit. For example, switch to
"`HEAD~3`" and create branch "`fixup`":

------------
$ git switch -c fixup HEAD~3
Switched to a new branch 'fixup'
------------

If you want to start a new branch from a remote branch of the same
name:

------------
$ git switch new-topic
Branch `new-topic` set up to track remote branch `new-topic` from `origin`
Switched to a new branch `new-topic`
------------

To check out commit `HEAD~3` for temporary inspection or experiment
without creating a new branch:

------------
$ git switch --detach HEAD~3
HEAD is now at 9fc9555312 Merge branch 'cc/shared-index-permbits'
------------

If it turns out whatever you have done is worth keeping, you can
always create a new name for it (without switching away):

------------
$ git switch -c good-surprises
------------

CONFIGURATION
-------------

include::includes/cmd-config-section-all.adoc[]

include::config/checkout.adoc[]

SEE ALSO
--------
linkgit:git-checkout[1],
linkgit:git-branch[1]

GIT
---
Part of the linkgit:git[1] suite
