2010-06-27 1 views
0

다른 두 명의 친구와 함께 코딩 중이며 모두 동일한 저장소를 사용하고 있습니다. 웬일인지, git는 나를 위해 무작위로 실패한다. 흥미로운 무엇Git push가 무작위로 실패합니다.

error: insufficient permission for adding an object to repository database .git/ objects

우리가 친구가 자신의 코드를 못살게 굴지 때, 난 더 이상이 오류가 발생하지 않는 것으로 나타났습니다, 나는 행복하게뿐만 아니라 내 코드를 밀어 수 있다는 것입니다. 이제 친구 B가 코드를 푸시하면 갑자기이 오류가 다시 나타납니다.

이것은 매우 기괴합니다. 여기서 무엇을 놓치고 있습니까?

+1

파일 권한 문제가 있다고 생각합니다. 그러나 저장소에 대한 자세한 내용과 유용한 정보를 얻기 위해 어떻게 연결해야하는지에 대해 자세히 알아야합니다. 어떤 종류의 서버를 실행합니까? (Windows/Linux/other) 어떤 사용자가 저장소 파일을 소유하고 있습니까? SSH를 통해 연결합니까? git을 사용하여 연결할 때 어떤 사용자로 로그인합니까? –

+0

세 명의 사용자 각각은 동일한 액세스 권한을 가지며 SSH를 통해 각각의 계정에 각각 연결됩니다. 서버 자체는 Ubuntu입니다. 루트는 저장소 파일을 소유합니다. 내가 이해하지 못하는 것은 다른 사람이 내 문제를 일으키는 원인이되고 다른 사람이 내 문제를 일으키는 이유입니다./ – Dirk

답변

3

가능한 아이디어 : 공유로 자식 저장소가 구성되지 않은

  • .

  • 디렉토리 권한이 올바르지 않으며 누가 하위 디렉토리를 만들었는지에 따라 .git/objects의 글 쓰기 권한이 있거나 없을 수 있습니다. (이 문제는 파일 서버가 디렉토리의 그룹 끈적 비트를 존중하지 않도록 구성된 경우에 특히 심각 할 수 있습니다.이 문제에 대해 물었습니다. 여전히 내가 아는 한, 서버가 이와 같이 구성되어 있으면 불가능합니다. 다른 그룹에 여러 사용자가 하나의 자식의 repo에 밀어 위해.)

을이 저장되어있는 OS에 알고 당신의 repo를 파일 시스템 특히 유용 할 것이다하고 권한이 어떻게 설정되어 있습니다.

+0

재미있는 생각, 우리는 우분투 서버에서 실행 중입니다. 그룹을 진짜 빨리 - 나는 일찍이 (그 객체가 사용자와 사용자 그룹에 의해 소유되었다는 사실을) 모두 함께 생각하지 못했다. 윌 당신이 알려 드리겠습니다. – Dirk

+0

지금까지 유망 해 보였습니다 (세 번째 코더가 확실히 돌아올 때까지 기다릴 필요가 있음) – Dirk

+0

환상적! ! ! ! – Dirk

0

노먼 램지 (Noran Ramsey)가 저장소를 공유로 구성하는 것에 대해 확장하려면 다음을 수행하십시오. 이렇게하려면 repo로 이동하여 git config core.sharedRepository true을 실행하십시오. 이렇게하면 git이 저장소 그룹에 작성하는 파일을 쓰기 가능하게 만들 수 있습니다. 이 작업을 수행 한 후에 sudo chmod -R g+w .도 실행하여 기존 파일이 그룹 쓰기 가능으로 설정되어 있는지 확인해야합니다. 물론 저장소를 사용하는 모든 사용자는이 작업을 수행하기 위해 파일을 소유하는 그룹에 속해야합니다.