当通过git checkout BranchA连接到BranchA时,如果我使用git pull BranchB,那么BranchB代码会被拉入BranchA吗?
当我通过当通过git checkout BranchA连接到BranchA时,如果我使用git pull BranchB,那么BranchB代码会被拉入BranchA吗?,git,Git,当我通过git checkout BranchA连接到BranchA并执行git pull或git pull origin BranchA或git pull BranchA时,来自远程BranchA的代码将被拉入本地BranchA 但是,当通过git checkout BranchA连接到本地BranchA时,假设我做了git pull BranchB或git pull master,那么git会尝试从服务器上的相应分支将代码拉到本地BranchA?是 在这两种情况下,获取部分是相同的:从远程获
git checkout BranchA
连接到BranchA
并执行git pull
或git pull origin BranchA
或git pull BranchA
时,来自远程BranchA
的代码将被拉入本地BranchA
但是,当通过git checkout BranchA连接到本地BranchA
时,假设我做了git pull BranchB
或git pull master
,那么git会尝试从服务器上的相应分支将代码拉到本地BranchA
?是
在这两种情况下,获取部分是相同的:从远程获取新的引用
但是(git pull
作为git fetch
+git merge
),合并部分将有所不同
当然,这取决于您的配置,但在大多数设置中,git-pull-branchB
将包括
git fetch
git merge origin/branchB
对
在这两种情况下,获取部分是相同的:从远程获取新的引用
但是(git pull
作为git fetch
+git merge
),合并部分将有所不同
当然,这取决于您的配置,但在大多数设置中,git-pull-branchB
将包括
git fetch
git merge origin/branchB
从
git pull
docs():
将远程存储库中的更改合并到当前分支中
这通常用于使用远程服务器上相应分支的更改来更新分支;但定义它的目的是将远程更改(您指定的任何此类更改)合并到当前分支中
另一方面,虽然您的意思似乎很清楚,但您的术语暗示了对git概念的一些可能的混淆。在git中,您并没有真正“连接”到这个分支或那个分支。在git中,您只需说分支已签出
公平地说,这个术语有点模糊,因为您可以签出一个分支,也可以不签出任何分支(分离的头状态),而只签出一个提交—即使该提交是分支的尖端。但是在任何一种情况下,符号ref
HEAD
指向的是您将要说的内容,并且如果这是一个分支-通常是-那么pull
将把更改合并到该分支中。来自git pull
文档():
将远程存储库中的更改合并到当前分支中
这通常用于使用远程服务器上相应分支的更改来更新分支;但定义它的目的是将远程更改(您指定的任何此类更改)合并到当前分支中
另一方面,虽然您的意思似乎很清楚,但您的术语暗示了对git概念的一些可能的混淆。在git中,您并没有真正“连接”到这个分支或那个分支。在git中,您只需说分支已签出
公平地说,这个术语有点模糊,因为您可以签出一个分支,也可以不签出任何分支(分离的头状态),而只签出一个提交—即使该提交是分支的尖端。但是在任何一种情况下,符号ref
HEAD所指向的都是您所说的签出,如果这是一个分支(通常是),那么pull
将把更改合并到该分支中。“连接到”=本地签出?是的,这是正确的“连接到”=在本地签出?是的,没错,所以git fetch始终跨所有分支,而不是针对某个特定分支?是的,默认情况下,它从远程获取所有引用(分支)。(如果添加了--all
,则从所有远程设备)确定git fetch始终跨所有分支,而不是针对某个特定分支吗?是的,默认情况下,它从远程设备获取所有引用(分支)。(如果添加了--all
,则从所有遥控器)