This topic created in 3435 days ago, the information mentioned may be changed or developed.
使用 gitlab 做代码库, develop 开发,合并到 master 时偶尔会出现代码异常回退覆盖问题,请问有遇到和知道怎么解决的吗?谢谢。
现象如下:开发人员 A 在版本 1 修改了部分代码,然后开发人员 B 提交到版本 5 的时候,发现版本 1 修改的代码回退到了版本 0 。 B 提交版本 5 的时候没有任何异常。
Supplement 1 · Dec 20, 2016
这个应该跟 gitlab 没关系,是操作问题。我们是按 git flow 来使用分支的,我负责把所有要部署的功能从 release 合并到 master ,基本上会仔细核对每个更改。但是偶尔还是会发现某些以前的 bug 又重现了,最后发现是这些代码被回退了,不知道大家有没遇到这种情况,然后如何解决,是否是分支合并不规范引起的?
11 replies • 2016-12-21 12:11:39 +08:00
 |
|
1
exch4nge Dec 20, 2016
没懂 LZ 写的这段描述……
我记得 gitlab 默认不让强制更改已经提交的服务器端的 git 历史的。
|
 |
|
2
hosiet Dec 20, 2016 via Android 1
一个一个提交看 diff 历史。就那么几个提交,总能找到不正常的修改在哪里。
另外可以对文件进行 git blame 按行查看最后一次修改的日期。
|
 |
|
3
yoa1q7y Dec 20, 2016
国外大神经常在文档和问答里说的一句话是:你应该知道自己在干什么
|
 |
|
4
pright Dec 20, 2016
B 是不是没有 pull 版本 1 ,自己-f 一路提交到版本 5 了
|
 |
|
7
dodogod Dec 20, 2016
@ pright 很少有-f 的情况,大部分都是 rebase ,然后再 commit 的
|
 |
|
8
xcatliu Dec 20, 2016
可以配置 master 禁止 -f 吧
|
 |
|
9
hosiet Dec 20, 2016 via Android
你就要看所谓“回退”的那个提交是谁做的,然后去找做出那个提交的作者,让他背锅
|
 |
|
10
SoloCompany Dec 20, 2016 1
如果没有 -f 过,那必然是被 commit 所覆盖了, git blame 一般能找出来是被哪次 commit 覆盖的 如果 -f 过的话,原因会比较复杂,但在协作上一般不太可能
我觉得更大可能是开发者不熟悉 git ,在自己分支上开发 pull 的时候执行了错误的合并以及 conflict 处理所导致
|
 |
|
11
owt5008137 Dec 21, 2016 via Android 1
这种情况,十有八九是某个人 merge 的时候 revert 掉了别人的更改。对于这种不会用 git 的人,一般我都给他设 autorebase 和 automerge 保平安
|