很久以来我一直在使用git。但是每当有需要创建新分支并合并它的情况时,我个人都会避免这样做,因为在为我的一个项目进行此操作时遇到了很多问题。在git合并后被破坏了,项目出现了很多错误。
所以现在我想了解git merge或rebase。
我听说过rebase,但仍然没有使用它,以为它会与git merge do:p
产生相同的效果。让我们举个例子
我正在master分支上,项目已完成。现在,我要根据新设计将项目更新为全新的布局。
因此,我创建了一个名为layout的分支。我已经完成了在布局分支中集成新模板并添加新功能的工作。
这是我想在我的master分支中添加的新功能,而无需获取新模板。
我如何实现这一目标。
答案 0 :(得分:2)
您将同时遇到合并和重新设置的冲突,这不是重新设置的重点。
这里的关键是经常合并(或变基),一天可能多次。这样,您只需要处理很少数量的通常很容易解决的冲突即可。另一方面,如果您有一个运行时间很长的分支,而又没有大量的合并时间,那么您将在多个文件中有很多冲突,以致于无法处理它们,并且您将需要一个巨大的文件。运气还不错,没做错什么。
因此,请使用短暂的分支并每天至少合并一次。
然后的问题是,如果您只有短暂的分支机构,如何添加更大的功能,例如您提到的新布局。
一种解决方案是使用功能切换:即使尚未准备好向用户显示该功能,也将新功能合并到master分支中,然后使用功能切换隐藏该功能。确定功能足够好后,只需打开功能开关即可,新功能现在对用户可见。
更多有关功能切换的信息:https://martinfowler.com/articles/feature-toggles.html
如果需要,您甚至可以使用托管服务:https://configcat.com/