我有两个分支机构。犯罪a
是一个的头,而另一个则有b
, c
, d
, e
and f
在之上a
。我想搬家c
, d
, e
and f
到第一个分支而不提交b
。使用cherry pick很简单:逐一结帐第一个分支cherry-pickc
to f
并将第二个分支重新设置为第一个分支。但有没有办法把所有的都挑选出来呢?c
-f
在一个命令中?
这是场景的直观描述(谢谢JJD /users/356895/JJD):
Git 1.7.2 引入了挑选一系列提交的功能。来自发行说明 https://raw.github.com/git/git/master/Documentation/RelNotes/1.7.2.txt:
git cherry-pick
学会选择一系列提交
(例如。cherry-pick A..B
and cherry-pick --stdin
),也是如此git revert
;这些不支持更好的排序控制rebase [-i]
不过,有。
从提交中挑选所有提交A
承诺B
(where A
比B
), run:
git cherry-pick A^..B
如果你想ignoreA 本身,运行:
git cherry-pick A..B
评论中的注释:
-
A
应该比B
, or A
应该来自另一个分支。
- 在 Windows 上,应该是
A^^..B
因为插入符号需要转义,或者应该是"A^..B"
(双引号)。
- In
zsh
外壳,应该是'A^..B'
(单引号)因为插入符号是特殊字符。
- 有关说明,请参阅加布里埃尔·斯台普斯的回答 https://stackoverflow.com/a/69472178/4561887.
(感谢评论中的 damian、J. B. Rainsberger、sschaef、Neptilo、Pete 和 TMin。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)