После того, как вы добавите некоторые вещи ... зафиксируйте их и после того, как закончите, нажмите на них BANG !! Начните все проблемы ... Как вы должны заметить, существуют некоторые различия в способах определения как новых, так и существующих проектов. Если какой-то другой человек попытается добавить / зафиксировать / отправить те же файлы или содержимое (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
РЕШЕНИЕ ПРОБЛЕМЫ
Если у вас есть разрешение суперпользователя, вы можете перейти вперед и изменить все разрешения самостоятельно, выполнив второй шаг. В любом другом случае вам нужно будет спросить всех пользователей, объекты которых созданы с их пользователями, используйте следующую команду, чтобы узнать, кто они :
$ ls -la | awk '{print $3}' | sort -u
<your user_name>
<his user_name>
Теперь вам и всем владельцам файлов нужно будет изменить права доступа к этим файлам, выполнив:
$ chmod -R 774 .
После этого вам нужно будет добавить новое свойство, которое эквивалентно --shared = group для нового репозитория, в соответствии с документацией, это сделает репозиторий доступным для записи в группу, выполнив его:
$ git config core.sharedRepository group
https://coderwall.com/p/8b3ksg
git add
иgit commit
-ing от имени пользователя root. Я исправил это с помощьюgit reset
ответа на этот вопрос, чтобы исправить.git
права доступа к каталогу.