我使用命令在 git 中多次更改了我的 user.name :
git config --global user.name myname
但我用不同的名称多次输入此命令,现在它显示错误
fatal: detected dubious ownership in repository at '/storage/emulated/0/dev/git/C9-hp/test-/test'
To add an exception for this directory, call:
git config --global --add safe.directory
/storage/emulated/0/dev/git/C9-hp/test-/test
在我之前使用的一些存储库中
git config --global --add safe.directory
正如它所说。但我试图找到真正的答案,而不仅仅是使用该命令解决现在的问题,所以我从 ChatGPT 询问它。我不知道它是否理解我的问题,但这就是它给我的:
sudo chown -R yourusername:yourusergroup /storage/emulated/0/dev/git/c9-hp/test-/test
498 chown -R yourusername:yourusergroup /storage/emulated/0/dev/git/c9-hp/test-/test
499 chown -R C9hp:C9hp /storage/emulated/0/dev/git/c9-hp/test-/test
但是我的 Android 手机应该是 root 的,因为我正在使用 Termux。有什么办法可以为我未来的所有存储库一次性解决这个问题吗?
编辑: 它包含什么? 我现在刚刚学习 git,这是为了测试,所以现在有 2 个文本文件和 1 个空目录。 我的本地 git 存储库位于内部存储上,我的 Android 手机是小米红米 10 128GB,4GB RAM。
您可以使用
*
完全选择退出安全检查。反正在Android系统上就有点没用了。
git config --global safe.directory '*'
git help config
的相关文档
安全目录
这些配置条目指定了 Git 跟踪的目录,即使它们由当前用户以外的其他人拥有,也被认为是安全的。默认情况下,Git 甚至会拒绝解析其他人拥有的存储库的 Git 配置,更不用说运行它的钩子了,并且此配置设置允许用户指定例外情况,例如对于有意共享的存储库(请参阅 git-init(1) 中的
选项)。--shared
这是一项多值设置,即您可以通过
添加多个目录。要重置安全目录列表(例如,覆盖系统配置中指定的任何此类目录),请添加具有空值的git config --add
条目。safe.directory
此配置设置仅在受保护的配置中受到尊重(请参阅“范围”部分)。这可以防止不受信任的存储库篡改该值。
此设置的值是插值的,即
扩展为相对于主目录的路径,而~/<path>
扩展为相对于 Git 的(运行时)前缀的路径。%(prefix)/<path>
要完全选择退出此安全检查,请将 safe.directory 设置为字符串
。这将允许所有存储库被视为它们的目录已在*
列表中列出。如果在系统配置中设置了safe.directory
并且您想要重新启用此保护,请在列出您认为安全的存储库之前使用空值初始化您的列表。safe.directory=*
如上所述,默认情况下,Git 只允许您访问自己(即运行 Git 的用户)拥有的存储库。然而,当 Git 在提供 sudo 的非 Windows 平台中以 root 身份运行时,git 会检查 sudo 创建的
环境变量,并且除了来自 root 的 id 之外,还允许访问记录为其值的 uid。这是为了在安装“make && sudo make install”期间轻松执行通用序列。在 sudo 下运行的 git 进程以 root 身份运行,但 sudo 命令会导出环境变量以记录原始用户拥有的 id。如果这不是您所希望的,并且希望 git 仅信任 root 拥有的存储库,那么您可以在调用 git 之前从 root 的环境中删除SUDO_UID
变量。SUDO_UID