![](/img/trans.png)
[英]Check out new branch from master with changes from another branch, which is branched out from master?
[英]Is branching from branchA which itself branched from master, same as branching from master, and then merging changes from another branch of master?
场景一:
场景2:
这两个场景是一样的吗?
您不是从分支分支,而是从分支所指的提交分支。 如果 master 和 branchA 指的是同一个提交,我们称其为 ABC123,那么所有这些都是相同的。
git branch branchB master
git branch branchB branchA
git branch branchB ABC123
在所有情况下,branchB 将指向提交 ABC123。 从那时起,master 或 branchA 发生的事情对 branchB 没有影响。
例如...
A - B [master]
$ git branch branchA
$ git branch branchB
A - B [master]
[branchA]
[branchB]
所有三个分支都指向提交 B。
如果我们然后检出 branchA 并进行一些提交...
$ git checkout branchA
$ ...git commit...
$ ...git commit...
C - D [branchA]
/
A - B [master]
[branchB]
master 和 branchB 保持在 commit B。 branchA 自行关闭。 如果我们然后检出 branchB 并进行一些提交...
$ git checkout branchB
$ ...git commit...
$ ...git commit...
C - D [branchA]
/
A - B [master]
\
E - F [branchB]
现在 branchB 自行关闭。 如果我们对主人也这样做......
$ git checkout master
$ ...git commit...
$ ...git commit...
C - D [branchA]
/
A - B - G - H [master]
\
E - F [branchB]
master 自行熄灭。
你的场景的其余部分很困惑,因为这是不正确的。
git pull origin master (master changes pulled into branchB)
这会将更改从 origin/master 拉到 master。
如果您想将 origin/master 拉入 branchB,您可以使用git pull origin master:branchB
。 完整的语法是git pull <remote> +<src>:<dest>
。 这通常仅用作git pull <remote> <src>
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.