Git合并问题-避免冲突和混淆

Git合并问题-避免冲突和混淆,git,git-merge,git-rebase,git-merge-conflict,Git,Git Merge,Git Rebase,Git Merge Conflict,我已经和git合作很长时间了。但是,每当出现我必须创建新分支并合并它的情况时,我个人都会避免使用它,因为我在为我的一个项目执行时遇到了很多问题。在git合并之后,它被破坏了,项目得到了大量的bug 所以现在我想了解git合并或重基 我听说过rebase,但仍然没有使用它,因为我认为它将具有与git merge do:p相同的效果 让我们举个例子 我在主分行工作,项目已经完成。现在我想根据新的设计将项目更新为全新的布局 所以我创建了一个名为layout的分支。我已经完成了在布局分支中集成新模板和添

我已经和git合作很长时间了。但是,每当出现我必须创建新分支并合并它的情况时,我个人都会避免使用它,因为我在为我的一个项目执行时遇到了很多问题。在git合并之后,它被破坏了,项目得到了大量的bug

所以现在我想了解git合并或重基

我听说过rebase,但仍然没有使用它,因为我认为它将具有与git merge do:p相同的效果

让我们举个例子

我在主分行工作,项目已经完成。现在我想根据新的设计将项目更新为全新的布局

所以我创建了一个名为layout的分支。我已经完成了在布局分支中集成新模板和添加新特性的工作

这是我想在主分支中添加的新功能,而无需获得新模板


我如何才能做到这一点。

合并和重新设置基础也会有冲突,这不是重新设置基础的重点

这里的关键是经常合并(或重新设置基础),可能一天多次。这样,您只需处理通常很容易解决的相当少的冲突。另一方面,如果您有一个长期运行的分支,而没有将其合并很长一段时间,那么在多个文件中会有太多冲突,以至于无法处理它们,并且您需要大量的运气来避免出错

因此,使用短期分支,每天至少合并一次

问题是,如果您只有短期分支,如何添加更大的功能,例如您提到的新布局

一种解决方案是使用功能切换:将新功能合并到主分支中,即使该功能尚未准备好向用户显示,也可以使用功能切换隐藏该功能。一旦您确定功能足够好,只需打开功能切换,新功能现在对用户可见

有关功能切换的详细信息:


如果您愿意,您甚至可以使用托管服务来实现这一点:

您将同时与merge和rebase发生冲突,这不是rebase的重点

这里的关键是经常合并(或重新设置基础),可能一天多次。这样,您只需处理通常很容易解决的相当少的冲突。另一方面,如果您有一个长期运行的分支,而没有将其合并很长一段时间,那么在多个文件中会有太多冲突,以至于无法处理它们,并且您需要大量的运气来避免出错

因此,使用短期分支,每天至少合并一次

问题是,如果您只有短期分支,如何添加更大的功能,例如您提到的新布局

一种解决方案是使用功能切换:将新功能合并到主分支中,即使该功能尚未准备好向用户显示,也可以使用功能切换隐藏该功能。一旦您确定功能足够好,只需打开功能切换,新功能现在对用户可见

有关功能切换的详细信息:


如果你愿意,你甚至可以使用托管服务:

Hi@szelpe,谢谢你的解释。因此,如果我想在不改变布局的情况下保留布局/分支的新特性。那么唯一剩下的就是复制粘贴新的功能代码,不是吗?是的,你必须复制部分代码,当新的布局完成后,你可以删除旧的。嗨@szelpe,谢谢你的解释。因此,如果我想在不改变布局的情况下保留布局/分支的新特性。那么唯一剩下的事情就是复制粘贴新的功能代码,不是吗?是的,你必须复制部分代码,当新的布局完成后,你可以删除旧的。