如何在 git safe.directory 上递归添加目录?

How to add directory recursively on git safe.directory?

据此 QA, we may use safe.directory argument to add directory to be marked as whitelist, due to latest CVE 在 git 上找到。但是似乎没有办法递归添加某些目录。

我有很多 很多 个存储库要添加,所以我想使用递归添加,如果该功能存在的话。存储库大部分放在我挂载的 ubuntu 上的 NTFS 磁盘上,因此里面文件的所有者始终是 root。如果登录用户与 git 目录的所有者不匹配,则最新更新似乎通过显示 fatal: unsafe repository ('/media/data1/project1/si/project' is owned by someone else.

等错误来限制 git 操作

我现在所做的(但可能不是完美的解决方案)是找到所有 .git 文件夹并通过 find 命令添加它们。

find /full/path -name '.git' -type d -exec bash -c 'git config --global --add safe.directory ${0%/.git}' {} \;

提醒一下,find命令中需要加上全路径,这样会解析全路径

从Git 2.36开始,您还可以在safe.directory中添加代表'all'的*。它不是您所要求的递归,但它可能会有所帮助,具体取决于您的情况,即

git config --global --add safe.directory *

查看 https://github.blog/2022-04-18-highlights-from-git-2-36/ 并搜索 safe.directory。