git中从主目录合并和从分支合并的区别

git中从主目录合并和从分支合并的区别,git,Git,假设我有一个分支b1,完成了我的开发,推到了远程,我想合并到远程主机中。我只是想知道它们之间的区别是什么 git fetch git checkout b1 git merge/rebase master git push master 及 在第一种情况下,b1将具有来自master的所有更改,但是b1可能具有不在master中的内容 第二种情况——相反 只要试着在合并之前/之后查看日志中的不同组合:git log b1..master,git log master..b1,在合并之前,您的回

假设我有一个分支b1,完成了我的开发,推到了远程,我想合并到远程主机中。我只是想知道它们之间的区别是什么

git fetch
git checkout b1
git merge/rebase master
git push master


在第一种情况下,
b1
将具有来自
master
的所有更改,但是
b1
可能具有不在
master
中的内容

第二种情况——相反


只要试着在合并之前/之后查看日志中的不同组合:
git log b1..master
git log master..b1
,在合并之前,您的回购看起来像

...-- * -- * -- * -- * master

...-- * -- * -- * -- * b1
git merge/rebase master
之后,只有
master
包含合并的历史记录:

-- * -- * -- * -- * -- * master
                      /
...-- * -- * -- * -- * b1
...-- * -- * -- * -- * master
                      \
-- * -- * -- * -- * -- * b1
git merge/rebase b1
之后,只有
b1
包含合并的历史记录:

-- * -- * -- * -- * -- * master
                      /
...-- * -- * -- * -- * b1
...-- * -- * -- * -- * master
                      \
-- * -- * -- * -- * -- * b1

您可能需要第一个场景,在该场景中,您通常会分支出
master
,并需要包含所有以前合并的完整历史记录。但是,如果
b1
是一个长期存在的分支,您也可以偶尔进行第二次合并,以便
b1
master

保持最新,确实,我很抱歉。但有一点不同:)我已经把再基加入到组合中了。推荐的方法是什么?当你的意思是可以有一些不在master中的东西时,它到底是什么?它可能是在merge命令发出后立即提交的吗?变化太小了,推的时候就推,git不允许你这么做,不是吗t@user5324782
master
只是另一个分支,与
b1
相同。除了它的名字之外,没有任何区别。“某物”-我的意思是在合并之前提交到给定的分支。你也可以在合并后进行提交,它们只是在合并后进行更多的提交。。。