我有一个提交历史记录如下:
A---B---C---D---E---F---J---K---L---M master
\ / /
G---H---I-----------N---O bugfix
bugfix
分支基于B
分支上的提交master
。它多次合并到master
。与此同时,master
还有其他提交。
我希望将所有提交内容提交给bugfix
分支G
,H
,I
,N
和O
。更好的作为补丁文件,包括所有提交消息更好,以便在应用补丁后,我得到3个提交原始消息。但是,如果我只能获得提交哈希而没有所有额外的愿望,那就没关系。
虽然A
分支基于B
,但提交不应包括bugfix
和B
。
这可能吗?
答案 0 :(得分:1)
git format-patch I -3
您可以使用git am
来应用这些补丁。
在某些情况下,提交日志消息的主题可能格式为[FEATURE][3348]add log-out in the menu
,其中包括[
和]
。您需要在--keep-non-patch
中添加git am
以保留[]部分。
更新:
如果您需要所有提交,git format-patch A..M
或git format-patch A..HEAD
。如果需要A,git format-patch --root M
或git format-patch --root HEAD
或仅git format-patch --root
。
git format-patch -$(git log --oneline | wc -l)
似乎还可以,包括A.patch。
如果您只需要bugfix的提交,git format-patch B..O