现在情况是这样,有两个分支 A 、B 并行开发,A 已经上 Master 了,又基于 Master 拉了一个新分支 C ,要把 B 的内容合并过去,由于各种原因吧 B 分支比较混乱( A 的一部分实际来着于 B ),领导不让直接把 B Merge 到 C 上去(冲突太多),安排下来手动把 B 上面的改动按模块提交到 C 上去。这就比较蛋疼了,我想把指定目录提上去但是最好保留原 commit 信息。
首先我想到了 cherry-pick ,但是我要提的模块有好几个人也改了,好几十个 commit ,我的还好都是比较小的 commit ,没有跨模块,但是别人可能有,而且和 C 还有冲突,所以这条路不太行得通。rebase 吧,又会把别人的其他模块 commit 也搞进来。又尝试先 checkout B 分支指定文件夹 commit 之后再 Merge 到 C ,但是这样 commit 信息被覆盖了。