You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git仓库KhachHangDonVi.cshtml意外删除及提交历史异常问题排查

问题成因分析
  • 合并提交隐式删除:你定位到的问题MR在执行合并时,若合并冲突解决阶段误删除了目标文件、或使用了ours/theirs等非默认合并策略,删除操作只会记录在最终的合并提交节点上,不会出现在MR包含的18个普通提交列表中,因此你单独排查单个提交时无法找到删除记录。
  • 路径变更导致历史追踪断裂:若View/DanhMuc目录或文件本身曾发生过重命名、路径移动操作,使用当前路径匹配查询历史时,Git默认会截断路径变更前的历史记录,仅开启--full-history参数无法自动追踪路径变更,因此查询不到20210611的早期提交。
  • 无关用户提交关联错误:20210615用户quanbm的提交记录被关联,大概率是该提交修改了仓库其他路径下的同名KhachHangDonVi.cshtml文件,你使用**/KhachHangDonVi.cshtml通配符查询时,会自动匹配所有路径下的同名文件提交,并非该用户实际操作了目标目录下的文件。
  • 浅克隆导致历史缺失:若本地仓库为浅克隆(拉取时指定了--depth参数),即便开启全量历史选项,也无法读取超出深度限制的早期提交记录。
排查操作步骤
  1. 排查合并提交的变更记录:提取问题MR对应的合并提交哈希值,执行命令git show <合并提交哈希> --name-status,即可查看该合并操作的全量文件变更,确认是否存在目标文件的删除记录。
  2. 修复历史追踪逻辑:不要使用通配符查询,替换为仓库根目录开始的完整文件路径,同时添加--follow参数追踪路径变更,执行命令:git log --all --full-history --follow -- 完整路径/View/DanhMuc/KhachHangDonVi.cshtml,即可查询到路径变更前的所有历史记录。
  3. 验证无关提交关联原因:执行git show <20210615 quanbm提交的哈希> --name-only,查看该提交修改的文件路径,确认是否为其他目录下的同名文件。
  4. 补全本地仓库历史:若为浅克隆,先执行git fetch --unshallow拉取全量远程仓库历史,再执行上述查询命令,避免历史缺失。
  5. 恢复原始版本文件:若需恢复20210611的原始版本,找到对应提交哈希后执行git checkout <20210611提交哈希> -- 完整文件路径,即可直接恢复对应版本,无需覆盖现有提交记录。

内容的提问来源于stack exchange,提问作者Pham X. Bach

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 18:36:10