繁体   English   中英

是从本身从 master 分支的 branchA 分支,与从 master 分支相同,然后从 master 的另一个分支合并更改吗?

[英]Is branching from branchA which itself branched from master, same as branching from master, and then merging changes from another branch of master?

场景一:

  • 我们有师傅。
  • git checkout -b branchA (从 master 分支出来)
  • git checkout -b branchB(分支出branchA)
  • 分支 A 被合并。
  • git checkout branchB
  • git pull origin master(主更改拉入branchB)
  • //这是结束状态

场景2:

  • 我们有师傅。
  • git checkout -b branchA (从 master 分支出来)
  • git结帐大师
  • git checkout -b branchB (从 master 分支出来)
  • git pull origin branchA (pull in branchA 变成 branchB )
  • branchA 合并到 master
  • git pull 原点大师
  • //结束状态。

这两个场景是一样的吗?

您不是从分支分支,而是从分支所指的提交分支。 如果 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.

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