Git开发工作流程

3

我对版本控制系统还有点新。

目前我有两个分支:masterdevelop。昨天我在develop分支上工作时发现我的修改是错误的,所以我不得不回到一些早期的提交。

问题是,在最近的提交中,我添加了几个新的单元测试,并且显着改进了一些关键的单元测试基础设施类,我希望在回到早期提交后仍然保留它们。

这让我意识到,也许从一开始就应该有一个与所有“项目相关”而不是“当前功能相关”的特性相关的分支。我是正确的吗?

在您的日常工作流程中如何处理这样的事情?使用git时应该如何操作?

3个回答

5

我想向您推荐一篇文章《Git分支模型成功实践》,它使用特性分支、开发分支、发布分支和修复分支来代表不同的目的。还有另一个Git扩展工具,您可能会感兴趣,它是gitflow,它为文章中提到的分支模型提供高级的仓库操作。


虽然这是一篇优秀的文章,但我不确定它是否适合新手学习版本控制系统。这有点像在学生还在学习如何使用锤子和钻机时,就描述如何建造房屋。 - Greg Hewgill
3
@格雷格,我不同意。 刚接触版本控制的人无论如何都在“建房子”。他们的软件将具有相同的复杂性,而且他们仍然会有想要还原的相同更改。拥有正确的分支模型可以使这些任务变得更加容易。这更像是有人告诉他们使用这些工具可以更轻松地建造房屋,但他们无法弄清楚为什么必须一遍又一遍地拆除和重建墙壁。一个好的分支模型就像一个蓝图,可以避免在第一次修复难以修复的错误,尽管在短期内开始锤击似乎更容易。 - Karl Bielefeldt

3
在这个特定的情况下,我会从主分支创建一个新的分支(称为ImproveUnitTests),然后挑选与你在开发中完成的相关主题的提交进行合并。然后你的ImproveUnitTests可以轻松地单独合并回主分支。
对于日常事务,我使用了很多分支。如果我正在开发featureX并发现需要修复其他东西,我会切换回我的主分支并创建一个新的分支来修复它。然后将我的“fixit”分支合并到主分支中,并在此基础上重新定义featureX。

1

如果我理解正确,您想撤销您的更改,但仍然保留其中一些。在这种情况下,我会切换到主分支并挑选好的更改(单元测试更改),然后只需撤销开发分支即可感到满意 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接