1

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

我可以成功地做到这一点并使用以下命令获取所有文件:

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(如果有区别的话)

有谁知道如何解决这一问题?如果分支是本地的,并且您删除了 origin/,则它可以正常工作。它只是在处理它似乎不同意的遥控器。

4

2 回答 2

2

如果分支是本地的,并且您删除了 origin/,则它可以正常工作。它只是在处理它似乎不同意的遥控器。

您不能在远程分支上工作(在工作树或普通存储库中)。您可以在本地分支机构工作(推拉)。

因此,您必须创建将在工作树中使用的本地跟踪分支。

当您推送和获取/拉取命令时,远程分支由 git 更新,以镜像远程存储库中分支的状态。

所以你可以:

  • 在现有本地分支(当前分支除外)上创建工作树
  • 在创建工作树的同时/命令创建一个分支,以便能够在其中提交。
于 2018-02-01T08:53:49.220 回答
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在评论中补充道:

但是,您实际上并不需要--checkoutfor 命令,-b只需要使用即可。
我什至没有想过-b能够从远程本地创建分支。

于 2018-02-01T05:55:22.827 回答