adi*_*enc 37 git bash ubuntu cve-2022-24765
根据此QA,safe.directory由于git 上发现了最新的 CVE ,我们可以使用参数添加要标记为白名单的目录。但似乎没有办法递归添加某些目录。
我有很多存储库要添加,所以我想使用递归添加(如果该功能存在)。存储库主要放置在我在 ubuntu 上安装的 NTFS 磁盘上,因此内部文件的所有者始终是 root。如果登录的用户与 git 目录的所有者不匹配,最新的更新似乎会通过显示此类错误来限制 git 操作fatal: unsafe repository ('/media/data1/project1/si/project' is owned by someone else。
小智 63
从 Git 2.36 开始,您还可以将代表“全部”的 * 添加到 safe.directory 中。它并不像您要求的那样递归,但根据您的情况可能会有所帮助,即
git config --global --add safe.directory "*"
Run Code Online (Sandbox Code Playgroud)
请参阅https://github.blog/2022-04-18-highlights-from-git-2-36/并搜索 safe.directory。
编辑:根据 zcoop98 的建议,我们应该在 '*' 周围添加双引号。
小智 12
我现在所做的(但可能不是完美的解决方案)是查找所有.git文件夹并通过命令添加它们find。
find /full/path -name '.git' -type d -exec bash -c 'git config --global --add safe.directory ${0%/.git}' {} \;
Run Code Online (Sandbox Code Playgroud)
需要提醒的是,find命令中需要添加完整路径,这样才会解析完整路径。