หลังจากที่คุณเพิ่มสิ่ง ... กระทำพวกเขาและหลังจากเสร็จสิ้นการผลักดันมัน! ปัง!! เริ่มปัญหาทั้งหมด ... ตามที่คุณควรสังเกตว่ามีความแตกต่างบางอย่างในวิธีการกำหนดทั้งโครงการใหม่และที่มีอยู่ หากบุคคลอื่นพยายามที่จะเพิ่ม / ส่ง / ส่งไฟล์เดียวกันหรือเนื้อหา (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
เป็นผู้ใช้รูท ฉันแก้ไขด้วยgit reset
และคำตอบของคำถามนี้เพื่อแก้ไข.git
สิทธิ์ไดเรกทอรี