당신이 몇 가지 물건을 추가 한 후 ... 그들을 저지른 후 그것을 모두 밀어! 쾅!! 모든 문제를 시작하십시오 ... 새 프로젝트와 기존 프로젝트가 정의 된 방식에 약간의 차이가 있습니다. 다른 사람이 동일한 파일 또는 내용을 추가 / 커밋 / 푸시하려고하면 (git은 둘 다 동일한 객체로 유지) 다음 오류가 발생합니다.
$ git push
Counting objects: 31, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (17/17), done.
Writing objects: 100% (21/21), 2.07 KiB | 0 bytes/s, done.
Total 21 (delta 12), reused 0 (delta 0)
remote: error: insufficient permission for adding an object to repository database ./objects remote: fatal: failed to write object
이 문제를 해결하려면이 경우 제한되는 운영 체제 권한 시스템을 염두에 두어야합니다. 문제를 더 잘 이해하고 git 객체의 폴더 (.git / objects)를 확인하십시오. 아마도 다음과 같은 것을 보게 될 것입니다.
<your user_name>@<the machine name> objects]$ ls -la
total 200
drwxr-xr-x 25 <your user_name> <group_name> 2048 Feb 10 09:28 .
drwxr-xr-x 3 <his user_name> <group_name> 1024 Feb 3 15:06 ..
drwxr-xr-x 2 <his user_name> <group_name> 1024 Jan 31 13:39 02
drwxr-xr-x 2 <his user_name> <group_name> 1024 Feb 3 13:24 08
*이 파일의 사용 권한은 사용자에게만 부여되었으며 아무도 변경할 수 없습니다 ... *
Level u g o
Permission rwx r-x ---
Binary 111 101 000
Octal 7 5 0
문제 해결
수퍼 유저 권한이있는 경우 2 단계를 사용하여 직접 모든 권한을 변경하고 변경할 수 있습니다. 다른 경우에는 모든 사용자에게 사용자로 작성된 오브젝트를 요청해야합니다. 다음 명령을 사용하여 자신이 누구인지 확인하십시오. :
$ ls -la | awk '{print $3}' | sort -u
<your user_name>
<his user_name>
이제 귀하와 모든 파일 소유자는 다음을 수행하여 해당 파일 권한을 변경해야합니다.
$ chmod -R 774 .
그런 다음 문서에 따라 새 리포지토리에 대해 --shared = group done과 동일한 새 속성을 추가해야합니다.
$ git config core.sharedRepository group
https://coderwall.com/p/8b3ksg
git add
및git commit
루트 사용자로 -ing. 디렉토리 권한git reset
을 수정하기 위해 a 와이 질문의 답변으로 수정했습니다.git
.