【发布时间】:2013-05-14 06:41:19
【问题描述】:
我将 git 用于 c++ 项目,并且我是唯一的开发人员。除了维护代码历史之外,我使用 git 是因为我希望能够在不修改原始代码的情况下测试新功能,直到我准备好将新功能合并到原始代码中。我在使用 Github,但我是唯一的开发者。
所以,这就是我想象的提交历史的样子(箭头表示子提交,分支之间的箭头是隐含的):
A1 ---> A2 ---> A3 B1 ---> B2
/ \ / \
X1 ---> X2 -----------> X3 ---> X4 -----> X5 ---> (...)
在上述历史中,A 和 B 代表我所做的功能(或更改)。在这段历史中,我先在A 工作,然后在完成A 之后,我开始B。显然,有时我会并行开发单独的新功能,但在这个假设的示例中(可能在我的实际开发中的大部分时间),功能是以串行方式处理的。
在这种情况下,我有两个相关的问题。我认为将这两个问题合并到一个 SO 帖子中是合适的。
(1) 仅创建 1 个“新功能”分支(例如,测试)与 master 一起运行是否有意义,该分支将用于开发 A 和 B(以及后续的新功能) )?(如果是这样,我将如何管理在 master 和 testing 之间切换、将 test 合并或 rebase 回到 master、然后再次切换到 testing 以开发另一个新功能的过程?)
(2) 鉴于我是唯一的开发人员,在将新功能合并到 master 时合并或 rebase 是否更有意义?我是 git 新手,所以请解释一下原因。如果答案是“视情况而定”,请说明如何在两者之间做出决定。
【问题讨论】:
标签: c++ git branching-and-merging git-merge git-rebase