第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

git server“丟失”commit問題探究

標簽:
Git

1 背景

gitlab某仓库有同事发现部分代码文件内容丢失,具体表现

A. dev分支commit信息是连续的,看不出明显的大时间范围批量丢失

file

B. 以SuncardCashier/control/CSymbolEdit.h为例,在1c88f613下只能看到2个历史相关提交

file

但是1天前提交的bfff1f51,也有此文件的修改提交,意味着bfff1f51这个提交“丢失”了

2 追查过程

2.1 gitlab server侧寻找线索

表面上像是gitlab server出现了某些问题导致“丢失”,所以查看/var/log/gitlab/gitlab-rails/下的production.log日志(production.log是当天的,production.log.31.gz是更早日期压缩后的,需要解压查看)。

但是通过查看日志只有一些查看上述commit的api access log,并无有效线索。并且同时段的其他仓库可以看到commit信息

2.2 gitlab network graph寻找线索

此时怀疑是有人在本地误使用rebase等命令再force push导致server的commit丢失,通过gitlab的network graph是一个高效的梳理手段

首先在network grapsh搜索bfff1f51(灰色箭头指向),这也说明gitlab server其实有此commit数据

file

这里不同颜色线相当于是dev分支不同的提交人,最右侧红线为主分支,其中线之间的箭头是merge。查看图中bfff1f51之后各线最邻近的merge,基本都还可以看到bfff1f51这个提交,说明正常。除了红色箭头标识的左侧绿线!

file

此提交为d5049b0,可以看到该文件已经没有bfff1f51提交了

file

继续到绿线分支更后的操作追查,之后它merge到了粉线(左起第二),粉线再merge到了兰线(左起第三),粉线再merge到了红线(左起第四)。而“丢失”情况如下图示,即被绿线merge前都正常,merge后都丢失了

file

3 结论

至此,可以基本确定是d5049b0进行了类似rebase回滚到之前提交的行为(其commit message也填写的是“冲突”),另外可以看到该仓库设置的protected branch只有master,无dev,所以是具备force push条件的

file

4 建议的改进措施:

A. 将dev等需重点分支禁止force push

B. 开发人员对于git回滚等操作需谨慎对待

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優(yōu)惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消