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