繁体   English   中英

当通过 git checkout BranchA 连接到 BranchA 时,如果我执行 git pull BranchB 那么 BranchB 代码是否会被拉入 BranchA?

[英]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 pullgit 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM