首页 > 解决方案 > Git 合并问题 - 避免冲突和混乱

问题描述

很长一段时间以来,我一直在使用 git。但是每当出现我必须创建新分支并合并它的情况时,我个人都会避免它,因为我在为我的一个项目做这件事时遇到了很多问题。在 git merge 之后它被破坏了,并且项目有很多错误。

所以现在我想了解 git merge 或 rebase。

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

举个例子

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

所以我创建了一个名为 layout 的分支。我已经在布局分支中集成了新模板并添加了新功能。

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

我怎样才能做到这一点。

标签: gitgit-mergegit-rebasegit-merge-conflict

解决方案


您将同时与合并和变基发生冲突,这不是变基的重点。

这里的关键是经常合并(或变基),可能一天多次。这样,您只需处理通常很容易解决的少量冲突。另一方面,如果你有一个运行时间很长的分支,并且在很长一段时间内没有合并它,你会在多个文件中出现很多冲突,以至于无法处理它们,你将需要一个巨大的没有做错事的运气。

所以使用短命的分支,每天至少合并一次。

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

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

有关功能切换的更多信息:https ://martinfowler.com/articles/feature-toggles.html

如果需要,您甚至可以使用托管服务:https ://configcat.com/


推荐阅读