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

时间:2020-10-13 00:57:10

标签: git github version-control

场景1:

  • 我们有主人。
  • git checkout -b branchA(分支脱离主服务器)
  • git checkout -b branchB(分支到branchA之外)
  • branchA已合并。
  • git checkout分支B
  • git pull origin master(将主更改添加到branchB中)
  • //这是结束状态

方案2:

  • 我们有主人。
  • git checkout -b branchA(分支脱离主服务器)
  • git checkout master
  • git checkout -b branchB(分支脱离主服务器)
  • git pull origin branchA(将branchA中的拉取更改为branchB)
  • branchA合并为master
  • git pull原始母版
  • //结束状态。

这两种情况都一样吗?

1 个答案:

答案 0 :(得分:0)

您不从分支分支,而是从分支引用的提交分支。如果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保留在提交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]

主人独自一人离开。


您的其他情况感到困惑,因为这是不正确的。

git pull origin master (master changes pulled into branchB)

这会将更改从原始/母版拉到母版。

如果要将原点/母版拉入branchB,则可以使用git pull origin master:branchB。完整语法为git pull <remote> +<src>:<dest>。通常仅用作git pull <remote> <src>