Po dodaniu niektórych elementów ... zatwierdź je, a potem gotowe! HUK!! Zacznij wszystkie problemy ... Jak zauważyłeś, istnieją pewne różnice w sposobie definiowania zarówno nowych, jak i istniejących projektów. Jeśli jakaś inna osoba spróbuje dodać / zatwierdzić / wypchnąć te same pliki lub treść (git zachowuje oba jako te same obiekty), napotkamy następujący błąd:
$ 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
Aby rozwiązać ten problem, musisz mieć na uwadze system uprawnień systemu operacyjnego, ponieważ w tym przypadku jesteś przez niego ograniczony. Aby lepiej zrozumieć problem, sprawdź folder git (.git / objects). Prawdopodobnie zobaczysz coś takiego:
<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
* Pamiętaj, że uprawnienia do tych plików zostały przyznane tylko dla twoich użytkowników, nikt nigdy nie będzie mógł go zmienić ... *
Level u g o
Permission rwx r-x ---
Binary 111 101 000
Octal 7 5 0
ROZWIĄZYWANIE PROBLEMU
Jeśli masz uprawnienia superużytkownika, możesz przejść dalej i samodzielnie zmienić wszystkie uprawnienia, wykonując krok drugi, w każdym innym przypadku będziesz musiał zapytać wszystkich użytkowników z obiektami utworzonymi z ich użytkownikami, użyj następującego polecenia, aby dowiedzieć się, kim oni są :
$ ls -la | awk '{print $3}' | sort -u
<your user_name>
<his user_name>
Teraz ty i wszyscy właściciele plików, będziecie musieli zmienić uprawnienia do tych plików, wykonując:
$ chmod -R 774 .
Następnie musisz dodać nową właściwość, która jest równoważna z --shared = grupa wykonana dla nowego repozytorium, zgodnie z dokumentacją, dzięki czemu repozytorium można zapisać w grupie, wykonaj to:
$ git config core.sharedRepository group
https://coderwall.com/p/8b3ksg
git add
igit commit
-ing jako użytkownik root. Naprawiłem to z odpowiedzią nagit reset
to pytanie, aby naprawić.git
uprawnienia do katalogu.