场景1:
方案2:
这两种情况都一样吗?
答案 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>
。