关于git的使用的2个问题?

需求是:

有个master分支, 主要开发都会在这里进行.

第二步,从master分支创建了一个新的分支A-master, A-master是一个子项目, 不能合并到master, 把A-master改改就是新的项目.

这么做的目的是:
master和A-master的很多代码,业务,都是一样的. 只有小部分不同.


问题:

我从master创建修改分支 mm, 改了一个文件.
然后创建合并请求:
合并到master没有问题,很顺畅.

合并到A-master有冲突, 原因在于:
A-master 已经做了一部分修改, 与master有差异, 冲突应该是这部分差异导致的,
但本次分支 mm修改的文件并不会导致冲突,


请问如何解决这个问题.


还有个问题是:
子的需求修改分支, 如何同时提交同步需求到多个分支?
也就是比如新建分支用来修改, 修改完毕后需要同步到其他三个分支,该如何操作, 如果以后分支或者项目多了该怎么解决,求帮助,有没有什么好的办法..

简化问题,假设你只有一个项目,那么你应该至少存在2个分支:master和dev. 并且原则上你不能在master上进行任何commit,所有对master的更改全部来自于merge from dev.而对于dev分支的修改,通常也不会直接在上面commit,而是会从dev临时拉出fix或者feature分支修改,然后合并到dev后删掉fix和feature.这样的git历史就会十分清晰.

所以我认为你有两个地方做的不是很合理:
1.直接在A-master做更改(也许你是合并dev过来造成的更改,但是没说,我就这么理解了)
2.mm分支来自于master, 理论上这个mm只能够合并到master.

所以我的建议是,如果你需要将一个修改应用到两个项目分支,你应该在master和A-master的共同父节点处创建一个common分支,这上面改的东西可以合并到master和A-master. 同时,你也应该给common一个dev分支.

首先,跟你你的问题描述,我提供个思路看看能否解决你的问题

跟你的情况来看,master和A-master分支是需要长期维护的分支,那必然会存在想同时修改相同文件的场景,如在master分支中修改a文件,A-master也想同步过去,那怎么解决这个问题呢?其实git提供了解决方式

git cherry-pick <commit>

如果在master上提交的commit也想应用于A-master,一般两种解决方式git merge 但整个分支merge肯定每次都有冲突需要解决,所以对于某些commit单独提交是合适的。

可以尝试下,是否可以解决你的问题

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632