假设我们有位于不同分支上的版本。
- 掌握
- v1
- v2
我们使用 SVN 的工作流程是我们在 master 上进行错误修复,然后将它们合并到 v1 和 v2 中,新功能应该等到下一个版本(v3)创建。
这就是 SVN 到 GIT 转换后的样子
---v2----v2----v2
/
M----M----M----M----M----M----M----M----M----M
\
v1----v1----v1----v1---v1---v1
M 是 master,v1 和 v2 是版本分支。
现在假设有人将提交“c”和“c1”推送到 master。
---v2----v2----v2 c1---c1---c1
/ / \
M----M----M----M----M----M----M----M----M----M---c---c---c---c---c--c
\
v1----v1----v1----v1---v1---v1
如何将包含“c”和“c1”提交的分支部分复制到 v1 中?
预期结果:
---v2----v2----v2 c1---c1---c1
/ / \
M----M----M----M----M----M----M----M----M----M---c---c---c---c---c--c
\ c1---c1---c1
\ / \
v1----v1----v1----v1---v1---v1---c---c---c---c---c--c
我发现cherry-pick 让我可以选择单个提交并在需要时重新应用它们。我认为 rebase 做了我想要的,但我迷失在 rebase 的论点中。
这是我认为它应该如何工作的方式:
将所有内容拉到本地仓库
rebase c+c1 提交到 v1 或 v2
推送到我们的“中央”回购
此外,如果有其他适合我们的工作流程替代方案,我非常愿意接受建议。