TMD,我的 branch 又被同事搞烂了,我都不知道怎么修

2019-10-15 01:45:27 +08:00
 ericgui

我们组长的思维方式是,你们各位同时做不同的 feature,一个 feature 一个 branch

然后做完了就提 pr,review 过了就 merge 到 dev 分支。

那么,如果你的 branch 还没做完,你就应该及时合并 dev,拿到最新的 feature

已经发生无数次了,我的 branch 被 dev 分支搞乱,结果我要花大量的时间来解决冲突,甚至修 dev 分支的 bug。 这 TMD,岂不是谁动作快,谁就可以把烂摊子甩给别人?

烦死了

大家有什么好的解决方案吗?

13186 次点击
所在节点    程序员
81 条回复
8355
2019-10-15 09:44:16 +08:00
不是自己分支 提 merge request?
全程跟其他人的分支有啥关系啊
lspvic
2019-10-15 09:46:17 +08:00
讲道理,流程上一点问题也没有。就是你组长不该把有问题的 pr 通过,二一个就是你改的时候尽量避开你同事可能会改的地方,比如全局的东西不要每次都在最后加代码,可以写到中间
avalon8
2019-10-15 09:46:23 +08:00
我们是 feature 分支提交到 dev 分支测试通过后,再把 feature 分支提到 release 分支,测试过后,再把 release 合并到生产环境。提交代码之前先在本地合并解决冲突后在提交 PR,涉及到谁的 bug 找谁就行了
syrupofplum
2019-10-15 09:59:17 +08:00
我也同意一个功能一个 branch,自己的 branch 自己维护。还是应该和组长多沟通,dev 分支的问题,这个不应该由你来处理。
hantsy
2019-10-15 09:59:28 +08:00
@ericgui 你们不写测试吗?不做 CI 吗? CI 都跑不过的话,怎么可能合并代码。

另外建议功能 Branch 尽可能的小,一个 Task 最好能控制在一天内完成,否则分细些(用一个 Task 包含多个 checklist, 或者用一个 epic 管理)。这样尽可能的频繁更新,冲突也少。
hantsy
2019-10-15 10:03:21 +08:00
@wizardoz 对,这才是关键问题所在。如果有测试,肯定要让所有的测试通过,才能到 Dev 分支上去。
ericgui
2019-10-15 10:54:15 +08:00
@hantsy 没办法的,现在 MVP 阶段,变动特别大,没有测试,没有 CI CD

至于一个 pr 尽可能小,我们也在努力,但每次都是大几十上百行的删减,没有小 pr

总之就一句话,MVP 阶段, 啥也没有,而且有一个 deadline,必须月底上线

我就是抱怨几句,其实这也没办法的
GzhiYi
2019-10-15 11:01:02 +08:00
改上游跟 rebase 和 merge 什么关系,这种没法避免,只能说养成接冲突的习惯。
newtype0092
2019-10-15 11:06:31 +08:00
改全局的东西别混在 feature 里啊,修改底层基础的东西单独提交,你 rebase 下来的时候注意下又没有跟你相关的改动注意下就行了。
wangyzj
2019-10-15 11:06:49 +08:00
@ericgui 咦。。。你们的开发经理有问题啊,而且 CI 呢?
holy_sin
2019-10-15 12:22:11 +08:00
review + 测试通过才可以合?
conn4575
2019-10-15 12:29:36 +08:00
如果你同事对这个变量的改动因为测试没发现有 bug,那么就是他的问题。如果在他提交 PR 的阶段是没有问题的,那么问题就在你,一个长期的分支应该每隔几天就和主分支同步一次,这要保证最终 PR 时不会有大量冲突。
话说改全局的东西不事先沟通一下吗?我一般都要先根据 git log 跟原来的人沟通一下才会改的。
liuxliang
2019-10-15 12:42:12 +08:00
1.你们的流程有问题,可以建议修改
2.你们的的沟通有问题
3..local 文件了解一下,可以设置自己的配置,不上传就行,改只需要改自己的配置
4.有问题想办法解决
hantsy
2019-10-15 13:30:33 +08:00
@ericgui 跟 MVP 没关系,从来没有听说 MVP 可以省掉一些必要的东西。
相反越是越 MVP 阶段越应该把测试,CI、CD,项目自动化做到位。你们这样的下去,项目债务一直积累,项目最终会成为一团滥泥。
ericgui
2019-10-15 13:37:00 +08:00
@hantsy 我们已经决定了,MVP 之后的第一件事就是迁移到 ts,加上 unit test
hantsy
2019-10-15 14:19:45 +08:00
@ericgui 这种想法我以前在公司上班听过好多次,最终都是各种理由,不了了之。

就我之前的经历,后面再加上的可能性太小。

很多习惯一开始就需要培养的,到了一定时候,想再改过来,操作上太难,人都是有惰性的。到时你会发现之前做 MVP 赶的那点时间都是白费,你可能还要另外多花一两倍时间去写测试(当然这是要写测试的话)。
Freeego
2019-10-15 14:30:46 +08:00
全局的东西应该有个框架部门专门负责,业务部门都不应该有这个权限 merge 上去
tabris17
2019-10-15 14:33:49 +08:00
简单,你把它修改的全局部分再改回去
noobcoder1
2019-10-15 15:48:00 +08:00
一看就是自己一个人在那写着一身劲。。长时间不 merge 主线引来的冲突还怪同事把你 feature 搞坏了 。。

每天码代码前不知道 pull 看下么。。。

姿势不对还怨人。。
y_ding
2019-10-15 15:49:22 +08:00
此已非 git 或者其它衍生工具的问题了,任何工具或者系统,都很难解决 “他改了一个全局的东西,然后也没测试,就直接 merge 了,就不管了“ 的问题。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/609333

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX