Bazı şeyler ekledikten sonra ... taahhüt edin ve sonuçta itin! BANG !! Tüm problemlere başlayın ... Fark ettiğiniz gibi, hem yeni hem de mevcut projelerin tanımlanma biçiminde bazı farklılıklar vardır. Başka bir kişi aynı dosyaları veya içeriği (git her ikisini de aynı nesne olarak tutar) eklemeye / taahhüt etmeye / aktarmaya çalışırsa, aşağıdaki hatayla karşılaşırız:
$ 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
Bu sorunu çözmek için, işletim sisteminin izinlerini, bu durumda kısıtladığınız için aklınızda bulundurmanız gerekir. Sorunu daha iyi anlayın, devam edin ve git nesnenizin klasörünü (.git / objects) kontrol edin. Muhtemelen böyle bir şey göreceksiniz:
<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
* Bu dosyanın izinlerinin yalnızca kullanıcılarınız için verildiğini, kimsenin asla değiştiremeyeceğini unutmayın ... *
Level u g o
Permission rwx r-x ---
Binary 111 101 000
Octal 7 5 0
SORUNU ÇÖZMEK
Süper kullanıcı izniniz varsa, ikinci adımı kullanarak ileriye doğru gidebilir ve tüm izinleri kendiniz değiştirebilirsiniz, başka bir durumda, kullanıcılarıyla oluşturulmuş nesnelerle tüm kullanıcılara sormanız gerekir, kim olduklarını bilmek için aşağıdaki komutu kullanın :
$ ls -la | awk '{print $3}' | sort -u
<your user_name>
<his user_name>
Artık siz ve tüm dosyanın sahibi kullanıcılar bu dosyaları iznini değiştirmek zorunda kalacaksınız:
$ chmod -R 774 .
Bundan sonra, yeni depo için yapılan --shared = gruba eşdeğer yeni bir özellik eklemeniz gerekecektir, belgelere göre bu, havuz grubunu yazılabilir yapar, yürütün:
$ git config core.sharedRepository group
https://coderwall.com/p/8b3ksg
git add
vegit commit
kök kullanıcı olarak -ing. Dizin izinlerinigit reset
düzeltmek için bir ve bu sorunun cevabını düzelttim.git
.