When 'git worktree add <path>' is invoked without <commit-ish> and
with the --guess-remote option (or when worktree.guessRemote is set to
true), it tries to find a remote-tracking branch matching the basename
of <path>.
Currently, the behavior when multiple matches are found is the same as
when no match is found: it falls back to creating a branch from
HEAD. This has been the behavior since 71d6682d8c (worktree: add
--guess-remote option to add subcommand, 2017-11-29), when the option
was first introduced.
However, if the specified <path> matches any remote-tracking branch,
we infer that the user intended to use one of the remote-tracking
branches as the start-point rather than HEAD. So we abort the creation
of the branch and worktree when there are multiple matches, and
instruct the user to choose the start-point.
Signed-off-by: Yoichi NAKAYAMA <yoichi.nakayama@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
21 lines
1.0 KiB
Plaintext
21 lines
1.0 KiB
Plaintext
`worktree.guessRemote`::
|
|
If no branch is specified and neither `-b` nor `-B` nor
|
|
`--detach` is used, then `git worktree add` defaults to
|
|
creating a new branch from HEAD. If `worktree.guessRemote` is
|
|
set to true, `worktree add` tries to find a remote-tracking
|
|
branch whose name uniquely matches the new branch name. If
|
|
such a branch exists, it is checked out and set as "upstream"
|
|
for the new branch. If multiple matches are found, the command
|
|
fails. If no such match can be found, it falls back to
|
|
creating a new branch from the current `HEAD`.
|
|
|
|
`worktree.useRelativePaths`::
|
|
Link worktrees using relative paths (when "`true`") or absolute
|
|
paths (when "`false`"). This is particularly useful for setups
|
|
where the repository and worktrees may be moved between
|
|
different locations or environments. Defaults to "`false`".
|
|
+
|
|
Note that setting `worktree.useRelativePaths` to "`true`" implies enabling the
|
|
`extensions.relativeWorktrees` config (see linkgit:git-config[1]),
|
|
thus making it incompatible with older versions of Git.
|