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

Git merge issues - avoid conflicts and confusion

我使用 git 已经有一段时间了。但是每当我必须创建新分支并合并它的情况时,我个人都会避免它,因为我在为我的一个项目做这件事时遇到了很多问题。 git 合并后它被毁了,项目有很多错误。

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

我听说过 rebase 但仍然没有使用它认为它与 git merge do :p

具有相同的效果

举个例子

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

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

这是我想在没有获取新模板的情况下添加到我的 master 分支的新功能。

我怎样才能做到这一点。

你也会与合并和变基发生冲突,这不是变基的重点。

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

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

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

一个解决方案是使用 feature toggles:将新功能合并到 master 分支,即使该功能还没有准备好向用户显示,并使用 feature toggle隐藏功能。一旦您确定该功能足够好,只需打开功能开关,用户现在就可以看到新功能。

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

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