【问题标题】:Git pull, merge changes is worktrees?Git拉,合并更改是工作树?
【发布时间】:2019-02-07 21:26:26
【问题描述】:

我从 GitHub 克隆了一个存储库,并创建了一些工作树:

git worktree add -path- -branch-

当我从 master 拉取更改时,这些工作树是否也会更新?

【问题讨论】:

    标签: git git-worktree


    【解决方案1】:

    根据您用于“拉动更改”的命令,答案是“否”或“不完全”。

    从远程获取更新的最简单方法是git fetch。这会更新数据库(如果它们不在本地 repo 中,则通过从远程添加对象)并可能更新 refs。 (通常它会更新特定于该远程的远程跟踪引用。它可以被告知直接更新本地分支,但这不是一个好主意。)无论如何,fetch 不执行合并;要么单独留下本地分支,要么更新它们以匹配远程并破坏任何本地更改。 (同样,默认设置是不理会它们。)

    获取后,您可以 cd 进入工作树,您可以在其中签出给定的本地分支,并 merge 将相应的远程跟踪 ref 放入该分支(或执行具有类似方法的变基)。

    git pull 是执行 fetch 然后合并的简写。 (嗯......再次,这是默认设置。您可以更改配置,使其变为“获取然后执行变基”......)因此,如果您在工作树中签出给定分支,您可以执行git pull 并且可以启动到该分支的合并(使用该工作树及其暂存区域)。

    但是,如果您正在寻找一个可以启动合并到所有工作树中的命令(这听起来像是您所要求的),您可能不得不编写类似的脚本。 (老实说,我不推荐这样的事情。)

    【讨论】:

      猜你喜欢
      • 2013-09-26
      • 1970-01-01
      • 1970-01-01
      • 2010-11-27
      • 1970-01-01
      • 1970-01-01
      • 2020-06-30
      相关资源
      最近更新 更多