远程git工作树是分离的

时间:2018-02-01 02:30:23

标签: git git-worktree

如果分支未在本地存储,我正在尝试将工作树添加到远程分支。

我可以使用以下命令成功执行此操作并获取所有文件:

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(如果它有所不同)

有谁知道如何解决这个问题?如果分支是本地的,你删除原点/,它的工作完全正常。它只是处理它似乎不同意的遥控器。

2 个答案:

答案 0 :(得分:2)

full syntax是:

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会更新远程分支。

所以你可以:

  • 在现有本地分支(当前分支除外)上创建工作树
  • 在创建工作树的同一时间/命令中创建一个分支,以便能够在其中提交。