请教一下,是谁把代码合丢了

2022-07-20 16:25:36 +08:00
 magic3584

请教各位大佬,是谁把代码给合丢了,如下图,黄色为 master:

我的猜测是 B 在合并的时候给合没了,但是有个疑问就是 B 合并的时候应该会有冲突的而不是 fast forward 的吧?最开始我只看 master 的提交以为是 A 合没了。

请大佬指点

  1. 到底是谁给合没了
  2. 这个图看着确实不知道怎么去找是谁?请问是否有更清晰的图?
  3. 为什么 A 会从 B 的分支上合并到 master
10822 次点击
所在节点    git
68 条回复
ddch1997
2022-07-20 17:43:31 +08:00
单个文件不是有 git file history 吗,挨个检查
magic3584
2022-07-20 17:44:06 +08:00
@HannibaI #8
我们是每人一个分支,然后都往 master 上合。

“ A 会从 B 的分支上合并到 master”
这句我没看懂。A 不是只有自己的分支和 master 吗
imycc
2022-07-20 17:45:39 +08:00
应该是 3B 的时候把冲突的代码删掉了。

假设 A 是 master ,B 是 feature 分支。当主分支更新之后,B 把 master 上的变更 merge 过来,然后遇到冲突并解决,然后再合并回去 master ,这个时候冲突就没了。

有些脑溢血瞬间是这样的,同事 A 跟 B 改了一个功能,A 的功能已经上线,B 在解决冲突的时候删多了,测自己的功能没问题,如果没有回归测试 /集成测试,等上线 A 改的东西就挂了。
gam2046
2022-07-20 17:53:55 +08:00
@magic3584 #13 git log -p <filename>
magic3584
2022-07-20 18:40:51 +08:00
@m1ng #20
@ddch1997 #21
@gam2046 #24
git log -p <filename> 我这命令行循环显示最近的俩 commit
HankLu
2022-07-20 19:35:53 +08:00
好麻烦啊,怎么会这么难搞
DeWjjj
2022-07-20 19:42:33 +08:00
别直接怀疑 3b ,有可能是其他线路 的提交和 3b 冲突了,直接合掉了。
3b 只是你查出来最文件消失的位置,这个时候就各自回滚。
DeWjjj
2022-07-20 19:44:32 +08:00
话说你们领导没人 review 直接合并也是权限开放的太大了。。。。。
magic3584
2022-07-20 19:52:00 +08:00
@DeWjjj #27
所以找不出来到底谁改了吗?
小公司,都能合 master 就看出来了
L0L
2022-07-20 20:10:14 +08:00
3B 那个分支没有;有没有可能是不是 A 的代码没有 rebase 到 3B 的那个分支呢?
loveyu
2022-07-20 20:41:57 +08:00
上次遇到丢代码是有人 merge 有人 rebase
m1ng
2022-07-20 20:44:34 +08:00
@magic3584 你可以直接 git log -p <filename> > a.diff ,把这个文件的所有修改记录都到导出到一个文件里,然后在这个文件里搜索被删除的代码
prudence
2022-07-20 23:32:02 +08:00
合并的人冲突不解决,闭着眼选一个。就导致这样而且不容易看出
bojackhorseman
2022-07-20 23:53:22 +08:00
git reflog
leimao
2022-07-20 23:56:31 +08:00
3B 里的人把代码丢了呗
binux
2022-07-20 23:57:54 +08:00
master 上只要不删 commit ,挨个找呗。
rpman
2022-07-21 00:32:11 +08:00
所以高度耦合的功能少搞分支
p1gd0g
2022-07-21 00:36:52 +08:00
下个小乌龟,就能看到了
我上次也是这样,在 vscode 和 gitlab 里怎么找都看不出来,同事的小乌龟很清楚的能看到合并时的删除文件记录。具体也没细查
realpg
2022-07-21 04:29:05 +08:00
对 git 不精通不建议全在分支工作
还是建议搞 pr
merge branch 有冲突只由一两个大佬操作
msg7086
2022-07-21 04:40:10 +08:00
3B 这个 merge commit ,如果是 clean merge 的话是不会有问题的。
但是如果有冲突,然后解决冲突的人乱选,就会把代码覆盖掉了。
(所以老老实实 rebase 多香。)

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

https://www.v2ex.com/t/867567

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

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

© 2021 V2EX