Git 如果合并一个删除了新功能所依赖的代码的提交,会发生什么

Git 如果合并一个删除了新功能所依赖的代码的提交,会发生什么,git,merge,rebase,Git,Merge,Rebase,假设Alice和我克隆了一个存储库并一直在进行更改。Alice提交她的更改并将其推送到remote。然后我取出零钱,把它和我的合并在一起。想象一下Alice在最近的提交中删除了一个名为Vehicle的类。轮到我了,我添加了一个名为Car的新类,它扩展了Vehicle类。现在,当我把她的承诺和我的合并时,显然会有问题。 这是否意味着我必须在合并之前检查代码并测试它?(可能是的)。在这种情况下,通常的做法是什么 这是否意味着我必须在合并之前检查代码并测试它?(可能是的) 您应该在合并后检查代码。 您

假设Alice和我克隆了一个存储库并一直在进行更改。Alice提交她的更改并将其推送到remote。然后我取出零钱,把它和我的合并在一起。想象一下Alice在最近的提交中删除了一个名为Vehicle的类。轮到我了,我添加了一个名为Car的新类,它扩展了Vehicle类。现在,当我把她的承诺和我的合并时,显然会有问题。 这是否意味着我必须在合并之前检查代码并测试它?(可能是的)。在这种情况下,通常的做法是什么

这是否意味着我必须在合并之前检查代码并测试它?(可能是的)

您应该在合并后检查代码。 您可以在合并之前检查其他开发人员的分支, 但那就不那么方便了

在这种情况下,通常的做法是什么

合并后,应重新生成项目并重新运行所有测试。 如果在合并过程中删除了所依赖的类, 您将在编译语言中遇到编译错误。 在解释语言中,希望您有覆盖受影响代码的测试用例,这样当您重新运行自动测试时,问题就会变得很明显。 当检测到问题时,可以检查合并的内容, 并可能与其他开发人员讨论有关更改原因的任何问题

希望在一个沟通良好、任务分离良好的团队中,
实施变更中不应存在此类逻辑冲突。

请注意,如果您的故事版本被保留,则合并后可能不会删除
车辆
类。但是假设
车辆
确实被移除,那么是的,您将遇到问题。解决方法是让您和Alice在开发过程中相互交流。如果到了你需要Git来为你做出设计决定的时候,我会认为已经太迟了。@ TimiGeeleISEN,“注意,如果你的故事版本是保留下来的,那么在合并之后,车辆类可能不会被删除。”但是改变并不总是关于添加。有时是为了去除不必要的东西,不是吗?Git如何决定车辆类别是需要的还是多余的?我实际上不知道Git使用的确切规则,但我看到它是双向的,也就是说,我看到
Vehicle
被删除,也被保留。我的观点很简单,您不应该依赖Git来做出这样的软件设计决策。就跟爱丽丝谈谈。好的,我会:)谢谢。请不要拘束,因为其他人会给出他们的意见:-)