diff options
Diffstat (limited to 'third_party/git/Documentation/git-switch.txt')
-rw-r--r-- | third_party/git/Documentation/git-switch.txt | 273 |
1 files changed, 0 insertions, 273 deletions
diff --git a/third_party/git/Documentation/git-switch.txt b/third_party/git/Documentation/git-switch.txt deleted file mode 100644 index 3759c3a265b5..000000000000 --- a/third_party/git/Documentation/git-switch.txt +++ /dev/null @@ -1,273 +0,0 @@ -git-switch(1) -============= - -NAME ----- -git-switch - Switch branches - -SYNOPSIS --------- -[verse] -'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 `A...B` as a shortcut for the merge -base of `A` and `B` if there is exactly one merge base. You can leave -out at most one of `A` and `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 a - convenient shortcut for: -+ ------------- -$ git branch <new-branch> -$ git switch <new-branch> ------------- - --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. - --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) and "diff3" (in addition to what is shown by - "merge" style, shows the original contents). - --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:: - 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 'orphan' 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 ------------- - -SEE ALSO --------- -linkgit:git-checkout[1], -linkgit:git-branch[1] - -GIT ---- -Part of the linkgit:git[1] suite |