我从 GitHub 克隆了一个存储库,并创建了一些工作树:
git worktree add -path- -branch-
当我从中提取更改时master
,这些工作树是否也会更新?
我从 GitHub 克隆了一个存储库,并创建了一些工作树:
git worktree add -path- -branch-
当我从中提取更改时master
,这些工作树是否也会更新?
根据您用于“拉动更改”的命令,答案是“否”或“不完全”。
从远程获取更新的最简单方法是git fetch
. 这会更新数据库(如果它们不在本地 repo 中,则通过从远程添加对象)并可能更新 refs。(通常它会更新特定于该远程的远程跟踪引用。可以告诉它直接更新本地分支,但这很少是一个好主意。)无论如何,fetch
不执行合并;要么单独保留本地分支,要么更新它们以匹配远程并破坏任何本地更改。(同样,默认设置是不理会它们。)
获取后,您可以cd
进入工作树,您可以在其中签出给定的本地分支,并将merge
相应的远程跟踪 ref 放入该分支(或执行具有类似方法的变基)。
git pull
是进行 fetch 然后进行合并的简写。(嗯...再次,这是默认设置。您可以更改配置,使其变为“获取然后执行变基”...)因此,如果您在工作树中签出给定分支,您可以做一个git pull
并且可以启动合并到该分支(使用该工作树及其暂存区域)。
但是,如果您正在寻找一个可以启动合并到所有工作树中的命令(这听起来像您在问的那样),您可能必须编写类似的脚本。(老实说,我不推荐这样的事情。)