数据库团队正在使用带有Git源代码控制的Visual Studio SSDT数据库项目来实现代码更改。每个人都在推动带代码审查的主Release分支(团队中只有5个开发人员)。仅允许所有数据库同事推送到不同的文件(表,存储过程,函数)等。分配工作方式的人,没有人推送或处理相同的sql文件。最终,所有从Release(当前处于工作状态)的良好更改都将合并到Master分支(可用于生产环境)中。
代码检查--->推送到发布分支(当前在Sprint期间处于工作状态)--->合并到主生产就绪分支
(a)在Git中使用此策略有什么负面影响?
(b)为了获得更清晰的历史记录,每个人都应该将ReleasePublic Remote改组为ReleaseLocal或进行Pull吗? (抓取/合并),我认为Rebase是更干净的历史记录的答案。
注意:我同意,只有在我们处理同一文件并推送更改时,这才会令人讨厌。创建不同功能分支然后合并到主分支的替代策略。我们不采用这种策略,因为每个开发人员每天都要进行10项与dba管理员相关的更改,创建许多分支和合并既费时又麻烦-
https://www.atlassian.com/git/tutorials/comparing-workflows/feature-branch-workflow
答案 0 :(得分:1)
最重要的是,如果它对您有用,那么它就会起作用。
源代码控制解决方案的目的是帮助您生产软件。
使用此设置,直到它不起作用,然后进行调整。 (请注意,如果需要,所有5个开发人员都可以开始使用功能分支,而不会干扰其他团队成员的流程。)
说过,使用单个分支会带来后果。这是两个例子
其中一种可能在以下情况下显示:
如果在功能分支中对文件A的更改进行了测试,则master / release分支更经常处于可释放状态。
具有功能分支可以更好地使用“拉取请求”(位于winston.exceptions.handle(
new winston.transportsConsole(),
new winston.transports.File({ filename: 'logs/test.log' })
);
throw new Error('Exception Handler');
之上的一层)-您的代码审查可能更易于实施和跟踪。