如果分支未在本地存储,我正在尝试将工作树添加到远程分支。
我可以使用以下命令成功执行此操作并获取所有文件:
git worktree add issue origin/issue
产生以下输出:
Preparing issue (identifier issue)
HEAD is now at d4bb4b9 Action edit performed on issue: ISSUE-1
这使得工作树看起来好像是成功的。如果我查看文件,一切都在那里。
但是,git status命令看起来像这样
git status
Not currently on any branch.
nothing to commit, working tree clean
我不能推/拉任何东西。 Windows上的Git版本是2.14.1 btw(如果它有所不同)
有谁知道如何解决这个问题?如果分支是本地的,你删除原点/,它的工作完全正常。它只是处理它似乎不同意的遥控器。
答案 0 :(得分:2)
git worktree add [-f] [--detach] [--checkout] [--lock] [-b <new-branch>] <path> [<commit-ish>]
所以试试:
git worktree add --checkout -b issue ../a/path origin/issue
OP Liam Kelly添加in the comments:
但是,您实际上并不需要
--checkout
命令,只需使用-b
。
我甚至没有想到-b
能够从遥控器本地创建分支。
答案 1 :(得分:1)
如果分支是本地的并且您删除了原点/,则它可以正常工作。它只是处理它似乎不同意的遥控器。
您无法在远程分支上工作(在工作树或普通存储库中)。你可以在当地的分支机构工作(推拉)。
所以必须创建您将在工作树中使用的本地跟踪分支。
当您在命令运行时推送和获取/拉取镜像远程存储库中分支的状态时,git会更新远程分支。
所以你可以: