想象一下Tim和Rob都在分开的Git分支(tims-branch
和robs-branch
)上工作,它们都分支了一个开发分支(develop
)。
现在,想象Rob需要Tim添加一些内容(Tim负责后端,Rob负责前端并需要添加新的api端点)。
如果Tim签出develop
并创建了一个新分支(api-endpoint
)并添加了这个新的api端点,那么Rob可以轻松地将这些更改合并到robs-branch
中{{1} }。
但是,如果蒂姆没有结账git merge api-endpoint
而是在develop
之外创建了api-endpoint
分支,这比tims-branch
更早(即有很多蒂姆正在研究的新东西,然后Rob试图将它合并在一起:
develop
只包含Tim为Rob添加的新数据。api-endpoint
中的所有其他代码,因为tims-branch
来自该分支。答案 0 :(得分:1)
蒂姆可以尝试通过执行
- Rob不仅会获得他想要的新代码,还会获得
醇>tims-branch
的所有其他代码,因为api-endpoint
来自 那个分支。
api-endpoint
的交互式变更来解决此问题,该变更删除了tims-branch
从develop
分歧后的所有提交。在api-endpoint
分支中
git rebase -i HEAD~N
其中N应该是一个数字,大于或等于返回develop
所需的提交次数。
api-endpoint
应该以预期的方式合并为Rob。