我有一个主分支,由另一个dev分支,然后添加了功能。与此同时,我对一些相同的文件进行了更改。虽然线上没有直接冲突,但我想知道使用不同的方法将其他分支合并回master,并且冲突最小。
ASCII艺术可视化:
A-B-C-D
\
1-2-3
我最好检查提交A,将分支合并为3,然后重新应用B到D中的更改?或者我应该将3合并回D?或者我确信有一些更好的方法可以让我失踪。
我对git相当新,我想我已经掌握了它,但我只是想确保我正确使用它。
答案 0 :(得分:3)
假设A-B-C-D的原始分支名称是“orig”。你在“3”,分支名称为“master”。试试这个:
git rebase orig
答案 1 :(得分:1)
您所描述的内容 - 签出A
,合并1
- 3
,然后应用B
- D
- 是一种称为变基的标准Git技术。假设没有无法自动解决的冲突,您可以使用一个命令执行此操作:
git rebase --onto {commit 3} {commit A} {commit D}
如果在进行rebase时存在冲突,Git会通过解决它们来与您联系。
然而,正常的Git工作流程只是将分支合并在一起。除非你有某些理由不这样做,否则我主张进行合并。
更准确地合并反映了发展过程;这意味着您可以查看历史记录并查看功能的确切开发方式,然后合并到主代码中。重新定位使您的历史看起来人为干净;有时这很有用,但它确实隐藏了事情的完成方式。