我无法搞清楚如何管理项目中的分支机构。我一直在研究一个功能分支,“加载”,它是从“dev”分支出来的。自从分支以来,“dev”已经向前推进了一些提交。现在,另一位开发人员从最新的“dev”提交开始了一个新的功能分支“work”。问题是“工作”中的功能取决于“加载”中的功能。 “装载”中的此功能已完成,但“装载”分支作为一个整体不是“完成”。
基本上,我想要做的是将“加载”中的最新更改用于“工作”,而不会结束“加载”分支的生命周期。
这就是树目前的样子:
(loads:A) -> (loads:B)
/
(dev:A) -> (dev:B) -> (dev:C)
\
(work:A)
以下是我认为我需要做的事情
(loads:A) -> (loads:B) -> (loads:C) //continue work on "loads"
/ \
(dev:A) -> (dev:B) -> (dev:C) -> (dev:D)
\ \
(work:A) -> (work:B) //use "loads" features in "work"
我只是不确定合并的确切顺序以及无法实现的目标。上次我试图合并分支机构时,我把事情搞砸了,花了一整天还原,我真的不想再经历那个了。
答案 0 :(得分:1)
git checkout loads
//after making code changes
git commit -am "latest changes on loads"
//This will replay your current changes on top of the existing dev
git rebase origin/dev
//Possible merge conflicts might have to address them
//after resolving conflicts
git push origin dev
如果另一个开发人员已经在工作中进行了更改并将它们与dev相关联,或者他可以从dev中提取更改并创建一个新的功能分支并从那时起继续,则另一个开发人员可以提交他的更改。