赞
踩
win10,git
由于win10重装系统后,文件夹所有者变了,导致git pull等都出现了该问题
fatal: detected dubious ownership in repository at 'E:/xxxx'
'E:/xxxx' is owned by:
'S-1-5-21-2006691667-4270939040-3929086740-1001'
but the current user is:
'S-1-5-21-3445211471-1722826824-3856863527-1001'
To add an exception for this directory, call:
git config --global --add safe.directory E:/xxxx
#设置E:/xxx目录为安全目录
git config --global --add safe.directory E:/xxx
#目录设置为字符串*。这将允许所有存储库被视为它们的目录被列在保险箱中。
git config --global --add safe.directory *
git config safe.directory 官网说明
safe.directory
These config entries specify Git-tracked directories that are considered safe even if they are owned by someone other than the current user. By default, Git will refuse to even parse a Git config of a repository owned by someone else, let alone run its hooks, and this config setting allows users to specify exceptions, e.g. for intentionally shared repositories (see the --shared option in git-init[1]).
This is a multi-valued setting, i.e. you can add more than one directory via git config --add. To reset the list of safe directories (e.g. to override any such directories specified in the system config), add a safe.directory entry with an empty value.
This config setting is only respected in protected configuration (see SCOPES). This prevents the untrusted repository from tampering with this value.
The value of this setting is interpolated, i.e. ~/
To completely opt-out of this security check, set safe.directory to the string . This will allow all repositories to be treated as if their directory was listed in the safe.directory list. If safe.directory= is set in system config and you want to re-enable this protection, then initialize your list with an empty value before listing the repositories that you deem safe.
As explained, Git only allows you to access repositories owned by yourself, i.e. the user who is running Git, by default. When Git is running as root in a non Windows platform that provides sudo, however, git checks the SUDO_UID environment variable that sudo creates and will allow access to the uid recorded as its value in addition to the id from root. This is to make it easy to perform a common sequence during installation “make && sudo make install”. A git process running under sudo runs as root but the sudo command exports the environment variable to record which id the original user has. If that is not what you would prefer and want git to only trust repositories that are owned by root instead, then you can remove the SUDO_UID variable from root’s environment before invoking git.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。