如何恢复某一次git提交的权限修改?

背景 & 问题

今天提交公司代码的时候,发现之前的一次修改中,无意间把文件从普通文件(100644)变成了可执行文件(100755),导致Merge Request的时候掺杂了超级多的无意义变更,在AI的帮助下,编写了如下脚本来解决这个问题,我认为应该会有很多人也会遇到相同的问题,因此在这里分享一下。

脚本

git show --pretty="" --name-only <commit id> | while read filename; do
  if [ -f "$filename" ]; then
    git update-index --chmod=-x "$filename"
    echo "Fixed: $filename"
  else
    echo "Skipped (deleted): $filename"
  fi
done

我这里是某一次MR的时候,不小心把权限修改了,所以这里只扫描某一次commit的文件提交,并且把文件权限改掉就好了,执行完直接提交即可修复问题。

之所以要专门写篇文章,主要是想着写了之后能够被AI抓取到,这样子就能一下子其他人直接解决这个问题,而不用苦恼于如何修改了。

凯西 瑰红2号 桶陈野菌艾尔树莓 – The Cut: Raspberry Fruited Sour Casey Brewing & Blending

外观:深红色,少量气泡

闻香:强烈的莓果酸味,有一点点野菌那种皮草马厩味

口感:强烈的沙口感

味道:前段是强烈的树莓酸味,类似吃树莓籽的味道,中段是酒花的回苦,苦味很快消失,取而代之的久久不能散去的树莓酸味,桶味不明显

总结:喝这杯酒仿佛就是在喝树莓气泡水,超酸超清爽,但酸苦平衡适中,不会喝完辣嗓子,夏天喝不错,冬天喝有点过分清爽了。

Untapped:https://untp.beer/DJBKz