Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git pull,合并更改是worktrees吗?_Git_Git Worktree - Fatal编程技术网

Git pull,合并更改是worktrees吗?

Git pull,合并更改是worktrees吗?,git,git-worktree,Git,Git Worktree,我从GitHub克隆了一个存储库,并创建了几个工作树,其中包括: git工作树添加路径--branch- 当我从master中提取更改时,这些工作树是否也会更新?根据您用于“提取更改”的命令,答案是“否”或“不完全” 从远程获取更新的最简单方法是git fetch。这会更新数据库(如果本地repo中还没有对象,则从远程添加对象),并可能更新引用。(通常它会更新特定于该远程的远程跟踪引用。可以告诉它直接更新本地分支,但这很少是一个好主意。)在任何情况下,fetch都不会执行合并;它要么单独保留本

我从GitHub克隆了一个存储库,并创建了几个工作树,其中包括:

git工作树添加路径--branch-

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

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

从远程获取更新的最简单方法是
git fetch
。这会更新数据库(如果本地repo中还没有对象,则从远程添加对象),并可能更新引用。(通常它会更新特定于该远程的远程跟踪引用。可以告诉它直接更新本地分支,但这很少是一个好主意。)在任何情况下,
fetch
都不会执行合并;它要么单独保留本地分支,要么更新它们以匹配远程分支,然后删除任何本地更改。(同样,默认设置是将它们单独放置。)

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

git pull
是在合并之后执行提取的简写形式。(好吧……这也是默认设置。您可以更改配置,使其成为“提取,然后执行重基”。)因此,如果您在一个签出给定分支的工作树中,您可以执行
git pull
,这可以启动到该分支的合并(使用该工作树及其暂存区域)


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

取决于您使用什么命令来“拉动更改”,答案是“否”或“否”“不完全是”

从远程获取更新的最简单方法是
git fetch
。这会更新数据库(如果本地repo中还没有对象,则从远程添加对象),并可能更新引用。(通常它会更新特定于该远程的远程跟踪引用。可以告诉它直接更新本地分支,但这很少是一个好主意。)在任何情况下,
fetch
都不会执行合并;它要么单独保留本地分支,要么更新它们以匹配远程分支,然后删除任何本地更改。(同样,默认设置是将它们单独放置。)

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

git pull
是在合并之后执行提取的简写形式。(好吧……这也是默认设置。您可以更改配置,使其成为“提取,然后执行重基”。)因此,如果您在一个签出给定分支的工作树中,您可以执行
git pull
,这可以启动到该分支的合并(使用该工作树及其暂存区域)

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