2013-01-02 13 views
19

Całkowicie utknąłem, dlaczego mój git całkowicie mnie zablokował. Mam laptopa, którego używam w pracy i kiedy jestem w domu. W przypadku obu kont używam git szeroko i oba są umieszczone w różnych ścieżkach. Dziś przyszedł do pracy i nie mogę nic zrobić, wszystko co widzę to:remove .git/index.lock ': Odmowa dostępu

/Applications/MAMP/htdocs/my_site/.git/index.lock': Permission denied 

Dla wszystkich Dbam gałąź jestem na może zostać usunięty. Próbowałem usunąć gałąź, sprawdzając wszelkie inne gałęzie, usuwając plik index.lock (zgodnie z sugestią innych użytkowników na stronach). Mam tylko otwarte okno terminala, nie ma innych możliwych programów używających git (o ile wiem i nic nie zauważam w oknie aktywności). Ponownie uruchomiłem komputer bezpośrednio na moim koncie roboczym i nadal nie miałem szczęścia. Jak mogę usunąć tę blokadę?

+0

Co to jest maska ​​uprawnień i prawa własności do '.git' i' .git/index.lock'? – cdhowie

Odpowiedz

11

Sprawdź, które użytkownik posiada blokadę git:

ls -la /Applications/MAMP/htdocs/my_site/.git/index.lock 

Następnie można użyć sudo, aby ją usunąć.

+0

Wow ... zrozumcie, wasze komentarze sprawiły, że wyglądam inaczej, dziękuję :) Podczas świątecznych wakacji zmodernizowałem MAMP za darmo na PRO w domu (konto domowe) i kiedy wszedłem do pracy dziś rano będąc zalogowany na moim koncie roboczym nie zauważyłem, że wszystko pod my_site zostało zmienione na moje konto domowe, co uniemożliwiło dostęp do mojego konta roboczego dla jakichkolwiek poleceń git. Przeklęciłem to i teraz działa. Dzięki. – user1760561

6

Po zaktualizowaniu kodu xcode możesz zostać poproszony o wyrażenie zgody na nową licencję.

git startowych

Zgoda na licencji Xcode/iOS wymaga uprawnienia administratora, należy ponownie uruchomić jako root poprzez sudo.

Kiedy to zrobisz

sudo git Init

dostaniesz użytkownika root .git reż

drwxr-xr-x 10 korzeń XXXX 340 25 września 12:40 .git

Jeśli wywołasz inne polecenia git, które tworzą pliki, pliki te są również tworzone dla użytkownika root.

Zmień uprawnienia lub usuń .git, jeśli nie jest jeszcze potrzebna.

=> Nigdy nie dzwoń do gita z sudo !!! Jeśli Twój proszeni są po prostu zadzwoń git na pustego katalogu

mkdir foo

cd foo

sudo git startowych

22

miałem identyczny problem chcąc popełnić moje zmiany w git i rozwiązały je w ten sposób:

  • Potrzebowałem zmienić grupę mojego folderu .git i jego zawartości:

    sudo chown -R:.git

  • musiał zmienić uprawnienia tego folderu:

    sudo chmod -R 775 .git

+0

To rozwiązanie działało fatalnie: nie można utworzyć "/Users/Shared/Jenkins/Home/jobs/FMS-UI-Automation/.git/index.lock": Również błąd odmowy uprawnień. – vikramvi

1

byłem przeżywa ten sam problem podczas próby aktualizacji submodules mojego repo:

$ git submodule update 
fatal: Unable to create '.../.git/modules/deps/luajit/index.lock': 
    Permission denied 
Unable to checkout '04dc64b558025e76a820f89a8e41840bf8269f32' in 
    submodule path 'deps/luajit' 

wydaje się, że problem był submoduły należał do innego użytkownika, więc mogę ustawić z powrotem na własność do mnie:

cd .git/modules/ 
chown -R dpino.dpino * 

W przypadku stosowania tego fragmentu, należy pamiętać, aby używać własnego użytkownikowi i grupęchown -R user.group *.