我有三个分支:
releaseX是支发展两周前也许.
topicA很久以前就已经开发出来了.因为我们知道它最终会被合并到一个发布分支中,所以我们不断将开发合并到它中.不幸的是,我们现在有大量的开发提交,我们在releaseX分支中不需要.
这是我的场景图:
(releaseX)
/
A---B---C---D---E---F---G---H (develop)
\
S---T---X---Y (topicA)
Run Code Online (Sandbox Code Playgroud)
上面,我需要继续提交S T X Y,但需要摆脱C和E.有问题的提交数量大约是50或更多,但显然我无法在这里说明.
我的目标是创建一个基于releaseX的分支,其中包含来自topicA的 50多个相关提交.我尝试在releaseX上创建一个新的分支,然后在topicA上重新定义新的分支,但这不允许我排除我不想要的提交.
基于releaseX将这50多个提交"挑选"到一个新分支(topicA_clean)的最佳方法是什么?
这里使用的解决方案git cherry-pick(使用git --version> = 1.7.2):
可以cherry-pick轻松地提交提交列表:
$ git cherry-pick -x <commit-hash-1> <commit-hash-2> <...> <commit-hash-X>
Run Code Online (Sandbox Code Playgroud)
我喜欢使用该-x选项以便稍后能够找到原始提交
如果你碰巧有一个你想要的提交列表,cherry-pick你可以使用一点点命令行魔术:
$ cat cherry-pick-hashes.md | xargs git cherry-pick -x
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
65 次 |
| 最近记录: |