Git数据库-每个人都在不同文件中推送到同一分支

时间:2018-07-30 03:24:28

标签: sql-server git visual-studio

数据库团队正在使用带有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

Devops

1 个答案:

答案 0 :(得分:1)

最重要的是,如果它对您有用,那么它就会起作用。

源代码控制解决方案的目的是帮助您生产软件。

使用此设置,直到它不起作用,然后进行调整。 (请注意,如果需要,所有5个开发人员都可以开始使用功能分支,而不会干扰其他团队成员的流程。)

说过,使用单个分支会带来后果。这是两个例子


可释放的main / release分支

其中一种可能在以下情况下显示:

  1. 发生释放
  2. 提交了文件A中有错误的提交
  3. 提交文件B已提交
  4. 您要释放对文件B所做的更改\
  5. 现在您没有该存储库的可发布快照

如果在功能分支中对文件A的更改进行了测试,则master / release分支更经常处于可释放状态。


拉动请求

具有功能分支可以更好地使用“拉取请求”(位于winston.exceptions.handle( new winston.transportsConsole(), new winston.transports.File({ filename: 'logs/test.log' }) ); throw new Error('Exception Handler'); 之上的一层)-您的代码审查可能更易于实施和跟踪。