Git开发工作流

Git开发工作流,git,version-control,Git,Version Control,我对版本控制系统还是有点陌生 目前我有两个分支:master和develope。昨天我在开发部门工作,突然意识到我所做的是错误的,所以我不得不切换回一些旧的提交 问题是,在最近的提交中,我添加了两个新的单元测试,并大大改进了一些关键的单元测试基础结构类,即使在回到旧的提交之后,我也希望将这些类保留在我的项目中 这让我意识到,也许从一开始我就应该做的是让一个分支与所有那些“项目相关”的特性相关,而不一定与“当前特性”相关。我说得对吗 在您的日常工作流程中,您如何使用git处理这些事情?在这种特定情

我对版本控制系统还是有点陌生

目前我有两个分支:
master
develope
。昨天我在开发部门工作,突然意识到我所做的是错误的,所以我不得不切换回一些旧的提交

问题是,在最近的提交中,我添加了两个新的单元测试,并大大改进了一些关键的单元测试基础结构类,即使在回到旧的提交之后,我也希望将这些类保留在我的项目中

这让我意识到,也许从一开始我就应该做的是让一个分支与所有那些“项目相关”的特性相关,而不一定与“当前特性”相关。我说得对吗


在您的日常工作流程中,您如何使用git处理这些事情?

在这种特定情况下,我将从master创建一个新的分支(称为ImproveUnitTests),然后在与您从开发中完成的主题相关的提交中进行cherry pick。然后,您的即兴测试可以很容易地自行合并回master


对于日常事务,我使用很多分支。如果我正在开发featureX,并且发现需要修复其他东西,我将切换回我的主程序,创建一个新的分支来修复这些东西。然后将我的“fixit”分支合并到master中,并重新设置featureX的基础

我想向您推荐这篇文章,它使用功能分支、开发分支、发布分支和hoxfixes来表示不同的用途。您可能感兴趣的另一个Git扩展是,它为本文中提到的分支模型提供了高级存储库操作。

如果我没弄错,您希望恢复更改,但保留一些更改。在这种情况下,我会切换到master并挑选好的更改(单元测试更改),然后恢复开发分支并感到高兴:)

虽然这是一篇优秀的文章,但我不确定它是否适合刚接触版本控制系统的人。这有点像在学生还在学习锤子和钻头时描述如何建造房子。@Greg,我不同意。新接触版本控制的人无论如何都在“建造一座房子”。他们的软件将具有相同的复杂性,并且他们仍将具有想要恢复的相同更改。拥有正确的分支模型可以使这些任务更加容易。这更像是有人告诉他们,用这些工具建造房子更容易,但他们不明白为什么要不断拆毁和重建墙壁。一个好的分支模型就像一个蓝图,它一开始就避免了难以修复的错误,即使在短期内开始敲打似乎更容易。