itsource

git 하위 모듈 업데이트가 'detected submodule: detected in repository:

mycopycode 2023. 7. 6. 22:13
반응형

git 하위 모듈 업데이트가 'detected submodule: detected in repository:

Linux 워크스테이션에 새 HDD를 장착했습니다.작동이 잘 되는 것 같습니다.새 디스크에 레포를 다운로드하고 싶습니다.그래서 나는 실행합니다.git clone XXX그리고 잘 작동합니다., CD를 할 때.git submodule update --init --recursive로 실패했습니다.

fatal: detected dubious ownership in repository at '/media/data/users/jhu3szh/serialize'
To add an exception for this directory, call:

git config --global --add safe.directory /media/data/users/jhu3szh/serialize

ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅠgit config --global --add safe.directory /media/data/users/jhu3szh/serialize하지만 Git 서브모듈을 다시 실행해보니 비슷한 오류가 더 많이 나왔습니다.repo에는 많은 하위 모듈이 .

누가 무슨 일이 있었는지 설명해 주시겠습니까?

모두 조용히 해요.safe.directory

tl;dr

Git's와 관련된 모든 경고를 침묵시킵니다.safe.directory이 하는.당신이 무엇을 하고 있는지 확실히 이해하세요.

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

롱 버전

의 이 게시물에서 적응한 Git의 safe.directory부모 디렉토리를 추가할 수 없습니다.

저도 같은 문제가 있었는데 안전한 디렉터리 검사를 사용하지 않도록 설정하여 해결했습니다. 그러면 "안전하지 않은 저장소" 오류가 모두 종료됩니다.

1 작업은 다음 명령을 실행하여 수행할 수 있습니다.

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

다음 그면에다설추다에 추가됩니다..gitconfig파일 이름:

[safe]
    directory = *

사용하지 않도록 설정하기 전에 이 보안 조치와 보안 조치가 존재하는 이유이해해야 합니다.리포지토리가 공유 드라이브에 저장된 경우에는 이 작업을 수행하면 안 됩니다.

그러나 100% 시스템의 유일한 사용자이고 리포지토리가 로컬로 저장되어 있는 경우 이론적으로 이 검사를 사용하지 않도록 설정하면 위험이 증가하지 않습니다.

또한 현재 이 파일을 파일 경로와 결합할 수 없습니다. 이는 제 경우와 관련이 있습니다.이 명령은 와일드카드를 say별 연산자로 해석하지 않습니다. 단지 다음 명령을 사용합니다."*""안전한 리포지토리 검사 사용 안 함/모든 리포지토리를 안전한 것으로 간주"를 의미하는 인수입니다.


1 - Windows의 특정 터미널 프로그램에서 실패할 경우 와일드카드를 단일 대신 큰따옴표로 둘러싸십시오(이 GitHub 문제를 통해).
git config --global --add safe.directory "*"

저도 같은 문제가 생겨서 디렉터리의 소유자를 변경하여 수정했습니다.시도해 보십시오

chown -R <current_user> <repo_folder>

NTFS/Windows에서 동일한 문제가 발생하는 경우 .git 및 .git 폴더의 부모가 모두 git을 실행하는 정확한 사용자가 소유하고 있는지 확인합니다.

동일한 그룹(관리자) 또는 .git의 상위 그룹만 작동하지 않을 수 있습니다.

업데이트: 권한은 → 속성 → 보안 탭 → 고급(창 오른쪽 아래) → 소유자 폴더를 마우스 오른쪽 버튼으로 클릭하여 편집할 수 있습니다.
동일한 창에서 상속을 사용하지 않도록 설정해야 할 수 있습니다.q/a에는 힌트가 있습니다.

Git를 실행하는 사용자는 Resource Monitor에서 확인할 수 있습니다.작업 관리자 → 성능 → 리소스 모니터(아래쪽)를 엽니다.숨겨진 "사용자 이름" 열을 활성화해야 할 수 있습니다.

OS가 Windows인 경우 다음 명령을 사용하여 파일의 소유자를 데려가야 합니다.

takeown /F <dir/*> /R

/F 변수는 이며 * 됩니다. * wildchar는 파일 이름입니다.

/Rrecursive를 하며, 로그에 합니다. 모든 파일 및 하위 폴더에도 소유자를 현재 기록된 사용자에게 적용합니다.

<dir/*>소유권을 가질 디렉터리입니다.

나는 다음 명령에 따라 실행했습니다.git bash그것을 해결하기 위해

git config --global --add safe.directory C:/User/username/source/myproject

필요한 경우 VS Code를 닫았다가 다시 엽니다.

올바른 터미널 사용자를 사용하고 있는지 확인합니다.저는 일시적으로 root 사용자로 변경하여 문제를 일으켰습니다.의 표준 사용자로 다시 변경되었습니다.su git-user오류가 사라졌습니다.

현재 사용자가 이 새 디렉터리의 소유자인 새 디렉터리를 디스크에 만듭니다.이 새 디렉터리에서 gitrepo를 복제합니다.

PHP에서 git의 명령을 실행했을 때 Ubuntu/LEMP에서 동일한 오류 메시지가 나타납니다.위에서 제안한 어떤 것도 문제를 해결하는 데 도움이 되지 않았습니다.

솔루션:숨겨진 '.git' 폴더의 올바른 소유자를 설정해야 합니다.

내 경우 git 명령어는 'www-data' 사용자(웹 서버 사용자)에 의해 실행되었습니다.

sudo chown www-data:<current_user> -R .git

명령줄에서 git로 작업할 수 있는 기능을 복원하려면 그룹이 다음을 기록하도록 허용해야 합니다.

sudo chmod g+w -R .git

소유권을 회복할 수 있어야 합니다.예:

sudo chown -v "$( id -u; ):$( id -g; )" .;
sudo chown -v "$( id -u; ):$( id -g; )" -R .git;
find '.git' -type d -exec chmod -v 775 {} \;;
find '.git/objects' -type f -exec chmod -v 444 {} \;;
find '.git/hooks' -mindepth 1 -maxdepth 1 -type f -exec chmod -v 775 {} \;;
find '.git' -type f ! -path '.git/objects/*' ! -path '.git/hooks/*' -exec chmod -v 664 {} \;;

관련: esture_valid_소유권()

의 폴더가 두개폴다의확있것같에 의해 되는 것 .git그자리의 .git폴더 및 현재 폴더.둘 다 현재 사용자가 소유해야 합니다.필요한 경우 현재 폴더의 다른 폴더와 파일을 다른 사용자가 소유할 수 있습니다.그러므로 로.

  1. 현재 사용자 확인(예: 실행)whoami
  2. 의 확인.git: run 더예)ls -al .git
  3. 의 변경이 .git폴더(현재 사용자가 아닌 경우). 그룹에 속해 수를 들어, 를 실행하는 것이 좋습니다.id -Gn username또는groups username
  4. Git를 의 소유자를 합니다.sudo chown current_user:appropriate_group .git 절한으로current_user그리고.appropriate_group예를 들어 달리기sudo chown ubuntu:ubuntu .git
  5. 현재 폴더의 소유자를 확인합니다(예: 실행).ls -al ./
  6. 현재 사용자가 아닌 경우 현재 폴더의 소유권을 변경할 때의 영향을 평가합니다. 그룹에 속해 수를 들어, 를 실행하는 것이 좋습니다.id -Gn username또는groups username
  7. 를 실행하여 합니다.sudo chown current_user:appropriate_group ./ 절한으로current_user그리고.appropriate_group예를 들어 달리기sudo chown ubuntu:ubuntu ./

현재 폴더의 소유자를 변경할 경우 이전 소유자가 현재 그룹 및 모든 사용자와 동일한 읽기, 쓰기 및 실행 권한을 유지하는지 여부와 같이 사용자가 원하는 대로 사용할 수 있도록 사용 권한이 설정되어 있는지 확인합니다. 그룹을 내용을 후 사용하십시오.git config --global --add safe.directory path/to/respository대신 해결할 수 있습니다.

공급업체 폴더의 라이브러리에서 문제가 발생했습니다.방금 도서관 폴더를 삭제하고 다시 설치했습니다.

이런 문제가 있는 사람들을 위한 해결책이 바로 저에게 효과적인 해결책입니다.

배경:이 일이 일어나기 전까지 저는 기계 제조사가 잘 작동했습니다.복제본 URL을 가져오기 위해 저장소를 열면 다음 오류가 발생합니다.

fatal: '/var/repo/3'의 리포지토리에서 의심스러운 소유권을 검색했습니다.

솔루션:현재 사용자였던 dir /var/repo의 권한과 소유권을 확인했습니다.Fabricator 웹 서버는 사용자 "www-data"를 사용하여 명령을 실행합니다.그런 다음 "/var/repo" dir의 소유권을 다음과 같이 변경했습니다.

sudo chown www-data:ubuntu -R repo/

그 후로는 잘 작동했습니다.

실행 중인 명령이 이미 한 번 실패했거나 설치 폴더에 이전 버전의 패키지가 있는 경우 다시 시도하기 전에 해당 패키지의 폴더를 제거하거나 추가 해결책을 찾습니다.여기서,jhu3szh/serialize예를 들어 패키지 이름과 일치하는 경우.

맞린을 했습니다.fatal: detected dubious ownership in repository atWSL의 리포지토리에 대해 Windows에서 Fork 클라이언트를 사용합니다.솔루션은 Fork 내부의 git 콘솔(Fork가 사용하는 git windows 클라이언트를 가리키며)을 열고 다음을 실행하는 것이었습니다.

git config --global --add safe.directory '%(prefix)///wsl$/Ubuntu-22.04/home/username/code/my-repo-name'

내부에서 을 실행하는 은 WSL을 변경하기 ..gitconfigWSL .

이 오류는 다음의 하위 항목이 아닌 폴더를 초기화(그리고 다른 git 명령을 실행)하려고 할 때 발생합니다./home/my_user/.

의 경우,는 당의경우, 폴는더입니다.serialize 에 있는/media/....

폴더를 아래로 이동하면 경고 양식이 발생하는 것을 중지할 수 있습니다./home/my_user/.

그렇지 그지않으소변수있도다습니의 .my_project_folder@Prakash Sahoo가 제안하는 바와 같이.

분실한 경우 다른 사용자 이름을 사용하여 파일을 복제합니다. 예를 들어,sudo git clone은 이은소을줍다니권유것▁to다줍니에 소유권을 줍니다.root대신에 당신이 선택한다면 단지.git clone그러면 소유권은 현재로 넘어갑니다.username 중 작동해야 . 할 것 같습니다둘 중 하나는 작동해야 합니다. 서로 섞여서 타이핑해야 합니다.sudo git branch -a이 오류를 방지합니다.

JetBrain Rider 코드 에디터를 업그레이드한 후에 발생했습니다.업그레이드 전에 관리자로 바로 가기를 사용하여 라이더를 시작했습니다.업그레이드에서 바로 가기의 "관리자로 실행" 구성이 제거되어 라이더 터미널에서 이 Git 오류가 발생하기 시작했습니다.응용 프로그램(Rider)을 관리자로 다시 실행하여 git 문제를 해결했습니다.

프로젝트 위치에서 gitbash를 열고 보안 우회를 위해 Windows OS용 아래 명령을 실행합니다.

git config --global safe.directory '*'

저에게 해결책은 콘솔(또는 이 경우 소스 트리)을 관리자로 실행하는 것이었습니다.

다음과 같은 sudo 권한에서 명령을 수행하십시오. sudogit clone XXX

제 문제는 제가 출마하지 않았다는 것입니다.sudo저는 보통 처음에 설정합니다.sudo bash그리고 생각하지 마.sudoㅠㅠㅠㅠ 단계를 것을 는 많은 .그래서 저는 제가 보통 단계를 건너뛰었다는 것을 깨닫기 전까지 많은 두통을 겪었습니다.

sudo: sudogit 상태를 사용하여 실행하기만 하면 됩니다.

언급URL : https://stackoverflow.com/questions/72978485/git-submodule-update-failed-with-fatal-detected-dubious-ownership-in-repositor

반응형