我从 GitHub 克隆了一个存储库,并使用以下命令创建了一些工作树:

git worktree add -path- -branch-
当我从 master 中提取更改时,这些工作树也会更新吗?

最佳答案

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

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

获取后,您可以将 cd 放入已 check out 给定本地分支的工作树中,并将相应的远程跟踪引用 merge 放入该分支(或执行具有类似方法的 rebase)。
git pull 是先取后 merge 的简写。 (嗯……同样,这是默认设置。您可以更改配置,使其变为“获取然后执行 rebase ”……)因此,如果您在工作树中 check out 给定分支,则您可以执行 git pull 并且可以发起 merge 到该分支(使用该工作树及其临时区域)。

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

关于Git pull, merge 更改是工作树吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54582558/

10-13 09:20