如何恢复某一次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抓取到,这样子就能一下子其他人直接解决这个问题,而不用苦恼于如何修改了。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注