[英]When connected to BranchA via git checkout BranchA, if I do git pull BranchB then will BranchB code get pulled into BranchA?
When I am connected to BranchA
via git checkout BranchA
and do a git pull
or git pull origin BranchA
or git pull BranchA
, then code from remote BranchA
will get pulled into local BranchA
.
However, while connected to local BranchA
via git checkout BranchA
, suppose I do git pull BranchB
or git pull master
, then will git try to pull code from that respective branch on the server into the local BranchA
?
是的。
在这两种情况下,获取部分都是相同的:从远程获取新的 refs。
但是( git pull
是git fetch
+ git merge
),合并部分会有所不同。
当然,这取决于您的配置,但git pull branchB
在大多数设置中将包括
git fetch
git merge origin/branchB
从git pull
文档( https://git-scm.com/docs/git-pull#_description ):
将来自远程存储库的更改合并到当前分支中。
这通常用于使用远程相应分支的更改来更新分支; 但它被定义为将来自远程的更改(您指定的任何此类更改)合并到当前分支中。
顺便说一句,虽然您的意思似乎很清楚,但您的术语表明 git 概念可能存在一些混淆。 您并没有真正“连接”到 git 中的这个分支或那个分支。 在 git-speak 中,您只会说分支已签出。
公平地说,这个术语有点模糊,因为您可以签出一个分支,或者您可以没有签出分支(分离的头状态)并且只需签出一个提交 - 即使该提交是一个提示分支。 但在任何一种情况下,符号 ref HEAD
指向的是您所说的已检出,如果这是一个分支 - 它通常是 - 然后pull
会将更改合并到该分支中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.