我正在处理两个分支,一个是master
,另一个是newFeature
。在开发“新功能”时,我向newFeature
分支添加了多个提交。我的理解是,当合并分支时,git merge
会在master
上创建一个单一的提交,但是实际上,合并后,master
现在具有newFeature
上的完整提交历史记录。例如-
master (pre-merge):
1=>2=>3
newVersion:
1=>2=>3=>4=>5=>6
master (actual results of merge):
1=>2=>3=>4=>5=>6
master (expected results of merge):
1=>2=>3=>6
在合并时有没有办法从newVersion
中删除中间提交,并且为什么合并不能按预期工作?
git merge
会创建一个新的提交,如果需要的话,但是它不会删除任何现有的提交。在您的情况下,它没有创建任何新的提交。它只是将master
分支移动到已经被newVersion
分支指向的提交。这是因为这两个分支实际上没有分叉,不需要新的提交。 - axiac