เกิดข้อผิดพลาดในการส่งไปยัง GitHub - สิทธิ์ไม่เพียงพอสำหรับการเพิ่มวัตถุในฐานข้อมูลที่เก็บ


126

ฉันได้รับข้อผิดพลาดที่ผิดปกติกลับมาขณะพยายาม "git push" ไปยังที่เก็บ GitHub ของฉัน:

นับวัตถุ: 8 เสร็จสิ้น
การบีบอัดเดลต้าโดยใช้ 2 เธรด
การบีบอัดวัตถุ: 100% (4/4) เสร็จสิ้น
การเขียนวัตถุ: 100% (5/5), 1.37 KiB เสร็จสิ้น
รวม 5 (เดลต้า 2) ใช้ซ้ำ 0 (เดลต้า 0)
ข้อผิดพลาด: สิทธิ์ไม่เพียงพอสำหรับการเพิ่มอ็อบเจ็กต์ในฐานข้อมูลที่เก็บ / วัตถุ

ร้ายแรง: ไม่สามารถเขียนวัตถุได้
ข้อผิดพลาด: แกะวัตถุออกด้วยรหัสข้อผิดพลาด 128
ข้อผิดพลาด: การแกะล้มเหลว: การคลายออกจากวัตถุผิดปกติ
ไปที่ git@github.com: bixo / bixo.git
 ! [ถูกปฏิเสธจากระยะไกล] หลัก -> ต้นแบบ (n / a (ข้อผิดพลาดในการแกะกล่อง))
ข้อผิดพลาด: ไม่สามารถส่งการอ้างอิงบางส่วนไปที่ 'git@github.com: bixo / bixo.git'
  • หลังจากล้างโคลนจาก GitHub แล้วฉันสามารถแก้ไข / เพิ่ม / คอมมิต / พุชไฟล์ที่แก้ไขได้
  • ถ้าฉันทำซ้ำเป็นครั้งที่สองฉันได้รับข้อผิดพลาดข้างต้น
  • ฉันสามารถส่งไปยังที่เก็บ GitHub อื่นได้ดี
  • ฉันได้ตรวจสอบสิทธิ์ของไฟล์ / ไดเร็กทอรีแล้วและดูเหมือนจะใช้ได้
  • ฉันใช้งาน git 1.6.2.3 บน Mac OS X 10.5.8

ที่เก็บข้างต้นเป็นที่มาของความสนุกของฉันสำหรับคำถาม Stack Overflow ก่อนหน้านี้ ( SO 1904860 ) ดังนั้นที่เก็บ GitHub อาจเสียหาย ปัญหาที่คล้ายกันเพียงอย่างเดียวที่ฉันพบจากการค้นหาคือปัญหาที่ไม่สามารถคลายไฟล์ที่รายงานบน github มีใครประสบปัญหานี้มาก่อนโดยเฉพาะเมื่อไม่ได้ใช้ GitHub



1
คำใบ้อีกอย่างสำหรับผู้ที่มีข้อผิดพลาดนี้: ฉันได้รับข้อผิดพลาดนี้เนื่องจากฉันใช้ผู้ใช้ที่ไม่ถูกต้องเพื่อผลักดัน เซิร์ฟเวอร์ของฉันมีผู้ใช้fooและgit; ทั้งสองสามารถอ่าน/opt/git/<repo>ได้ แต่gitสามารถเขียนได้เท่านั้น gitค่าเริ่มต้นเป็นผู้ใช้ปัจจุบันหากไม่มีการระบุไว้.git/configซึ่งฉันลืมไป ไม่จำเป็นต้องมีคำตอบอย่างละเอียดด้านล่างนี้
Sebastian

คำตอบ:


209

เมื่อคุณเห็นข้อผิดพลาดนี้นอก github นี่คือวิธีแก้ไข

ได้รับจาก: http://mapopa.blogspot.com/2009/10/git-insufficient-permission-for-adding.html

ssh me@myserver
cd repository/.git

sudo chmod -R g+ws *
sudo chgrp -R mygroup *

git config core.sharedRepository true

หลังจากนี้ git daemon ควรใช้สิทธิ์ของไฟล์กลุ่มเมื่อเขียนถึง. git / objects


4
+1 มันได้ผลสำหรับเรา มีอะไรให้ในsudo chmod -R g+ws *?
Erik B

5
ซึ่งจะช่วยให้ไฟล์ใหม่ที่สร้างโดยผู้ใช้รายอื่นสามารถรักษาสิทธิ์กลุ่มของไดเร็กทอรีรากได้ มิฉะนั้นคุณจะมีข้อผิดพลาดในการส่งไปยังที่เก็บ ดู setuid และ setgid
syvex

ฉันได้รับข้อผิดพลาดเดียวกันกับ Gitorious บน Debian 6 และ PHPStorm IDE โดยมีข้อความ "error: ไม่เพียงพอสำหรับการเพิ่มอ็อบเจ็กต์ไปยังฐานข้อมูลที่เก็บ. git / objects" ฉันใช้วิธีนี้ในโฟลเดอร์หลักของโปรเจ็กต์ซึ่งใช้ได้ดีกับเคล็ดลับ "+ s"
เบญจ

3
repo-config ล้าสมัย git config core.sharedRepository trueควรจะเป็น
lpapp

4
หมายเหตุ: หากคุณใช้สัญลักษณ์แทน " " ไฟล์และโฟลเดอร์ที่ซ่อนอยู่ (เช่น. git!) อาจไม่ได้รับผลกระทบ! ดังนั้นหากข้างต้นไม่ได้ผลสำหรับคุณให้เรียกใช้คำสั่งสำหรับ. / gitด้วย
Ben Rogmans

54

โดยปกติปัญหานี้เกิดจากการอนุญาตของผู้ใช้และกลุ่มที่ไม่ถูกต้องบนระบบไฟล์เซิร์ฟเวอร์ Git ของคุณ ที่เก็บ git จะต้องเป็นของผู้ใช้และกลุ่มของเขาด้วย

ตัวอย่าง:

หากผู้ใช้ของคุณเรียกว่า "git" กลุ่มของเขา "gitgroup" และที่ตั้งของ Git repo คือ git@mygitserverxyz.com: path / to / repo.git

จากนั้นทำ:

sudo chown -R git: gitgroup path / to / repo.git /

สิ่งนี้แก้ไขข้อผิดพลาดการอนุญาต git ไม่เพียงพอสำหรับฉัน


chown: ผู้ใช้ที่ไม่ถูกต้อง: `` git: git '
Alan Coromano

4
@MariusKavansky ลองใช้ $ USER: $ USER แทน git: git
dwurf

สิ่งนี้ใช้ได้เฉพาะบางครั้งในกรณีของฉัน ฉันต้องทำซ้ำหลังจากการผลักดันบางอย่าง
BuZZ-dEE

นี่เป็นคำตอบที่ดีที่สุด แต่คุณควรบอกว่าคุณ จำกัด chown ไว้ที่ ".git / objects" ได้และผู้ใช้ที่คุณเรียกว่า "git" เป็นเพียงผู้ใช้ที่คุณเข้าสู่ระบบ ความจริงที่ว่าผู้ใช้เป็นที่รู้จักหรือไม่โดย git server นั้นไม่สำคัญ
Tristan

34
sudo chmod 777 -R .git/objects

4
สิ่งนี้ได้ผลสำหรับฉัน ... แต่ WTF ?? ฉันอัปเดต repo มาหลายเดือนแล้วจู่ๆก็เริ่มเมื่อบ่ายวันนี้ ...
GojiraDeMonstah

การแก้ไขสำหรับฉันเกือบจะเหมือนกัน แต่เกี่ยวข้องกับการเปลี่ยน / แก้ไขเจ้าของไฟล์บางไฟล์ในไดเรกทอรี. git ฉันได้ทำการบำรุงรักษาคอมไพล์ในขณะที่ล็อกอินด้วย 'รูท' และดูเหมือนว่าจะเปลี่ยนเจ้าของเป็นรูทหรือสร้างไฟล์ใหม่ด้วยเจ้าของรูทที่ใช้คอมไพล์ ฉันมีสคริปต์การปรับใช้อัตโนมัติที่ทำงานภายใต้เจ้าของ 'apache' ซึ่งหยุดทำงานแล้ว
coatesap

9
chmod 777ไม่ใช่ทางออกที่ดีเป็นเพียงวิธีแก้ปัญหาที่ไม่ปลอดภัย ลองใช้คำตอบของ @ Syvex แทน (พร้อม setgid)
4wk_

10

git pullเรื่องนี้เกิดขึ้นกับฉันเมื่อฉันพยายามที่จะ .git/objectsวิเคราะห์บางคนแสดงให้เห็นว่ามีใครบางคนได้มุ่งมั่นที่มีรากในอดีตที่ผ่านมาดังนั้นการสร้างวัตถุบางอย่างที่มีความเป็นเจ้าของในราก

ฉันก็เลยวิ่ง

cd <repo>
la .git/objects/

และนั่นแสดงrootความเป็นเจ้าของสำหรับวัตถุบางอย่าง (ไดเรกทอรี) เช่นนี้:

user@host:/repo> la .git/objects/
total 540
drwxr-xr-x 135 user user 4096 Jun 16 16:29 .
drwxr-xr-x   8 user user 4096 Jun 16 16:33 ..
drwxr-xr-x   2 user user 4096 Mar  1 17:28 01
drwxr-xr-x   2 user user 4096 Mar  1 17:28 02
drwxr-xr-x   2 user user 4096 Jun 16 16:27 03
drwxr-xr-x   2 user user 4096 Mar  3 13:22 04
drwxr-xr-x   2 root root 4096 Jun 16 16:29 05
drwxr-xr-x   2 user user 4096 Jun 16 16:28 07
drwxr-xr-x   2 root root 4096 Jun 16 16:29 08

จากนั้นฉันก็วิ่ง

sudo chown -R user:user .git/objects/

และมันได้ผล!

แน่นอนว่าฉันกำลังแทนที่ผู้ใช้ด้วยผู้ใช้จริงของฉัน


4

ไม่มีสิ่งใดที่ได้ผลสำหรับฉัน สองสามชั่วโมงต่อมาฉันพบสาเหตุของปัญหา: ฉันใช้ repo url ประเภท

ssh://git@example.com/~git/repo.git

แต่น่าเสียดายที่ผมเก็บไว้ในเซสชั่ฉาบที่มีชื่อซึ่งได้รับการกำหนดค่าให้เป็นผู้ใช้เข้าสู่ระบบexample.commyOtherUser

ดังนั้นในขณะที่ผมคิดว่าเชื่อมต่อคอมไพล์ไปยังโฮสต์example.comกับผู้ใช้คอมไพล์ 'Git / TortoiseGit มีการเชื่อมต่อไปยังเซสชันฉาบซึ่งใช้ผู้ใช้example.com myOtherUserซึ่งนำไปสู่..insufficient permission..ข้อผิดพลาดเดียวกันทั้งหมด(สาเหตุที่ผู้ใช้ทั้งสองอยู่คนละกลุ่ม)

วิธีแก้ไข: เปลี่ยนชื่อเซสชันผงสำหรับอุดรูexample.comเป็นmyOtherUse@example.com


4

chmod ควรเป็น chown ดังนั้นบรรทัดที่ถูกต้องคือ:

sudo chown -R gituser:gituser objects

3

น่าแปลกที่ฉันมีปัญหานี้กับหนึ่งโคลนของ repo ที่ฉันมี แต่ไม่ใช่อีกที่ฉันมี นอกเหนือจากการโคลน repo อีกครั้ง (ซึ่งเพื่อนร่วมงานทำเพื่อแก้ไขปัญหานี้ให้สำเร็จ) ฉันยังจัดการ "รีเซ็ตคอมไพล์" กับคอมมิตที่ฉันมีก่อนที่ความล้มเหลวจะเริ่มขึ้น จากนั้นฉันก็ทำการเปลี่ยนแปลงอีกครั้งและสามารถดำเนินการได้สำเร็จหลังจากนั้น ดังนั้นแม้จะมีข้อบ่งชี้ทั้งหมด แต่ก็มีปัญหากับเซิร์ฟเวอร์ในกรณีนี้เห็นได้ชัดว่าเป็นการบ่งบอกถึงความแปลกประหลาดบางอย่างใน repo ในพื้นที่


3

ฉันได้รับข้อผิดพลาดนี้เนื่องจากทุกครั้งที่ผู้ใช้ส่งเนื้อหาบางส่วนกลุ่มของไฟล์จะเปลี่ยนเป็นผู้ใช้ จากนั้นหากผู้ใช้รายอื่นพยายามพุชเข้าที่เก็บข้อมูลจะทำให้เกิดข้อผิดพลาดในการอนุญาตและการพุชถูกปฏิเสธ ดังนั้นคุณต้องขอให้ผู้ดูแลระบบของคุณเปลี่ยนการตั้งค่าของที่เก็บเพื่อไม่ให้กลุ่มของไฟล์ใด ๆ ในที่เก็บถูกเปลี่ยนแปลงสำหรับการผลักดันโดยผู้ใช้ใด ๆ

เพื่อหลีกเลี่ยงปัญหาดังกล่าวโปรดตรวจสอบให้แน่ใจว่าเมื่อคุณเริ่มต้นที่เก็บ git ของคุณให้ใช้คำสั่ง "git init --shared = group"


สำหรับคำอธิบายเพิ่มเติมสามารถดูได้ที่ลิงค์stackoverflow.com/questions/16183345/…
Arun Chaudhary

2

หากคุณยังคงได้รับข้อผิดพลาดนี้ในภายหลังหลังจากตั้งค่าการอนุญาตคุณอาจต้องแก้ไขรูปแบบการสร้างของคุณ เราพบว่าคอมมิตใหม่ของเรา (โฟลเดอร์ภายใต้อ็อบเจกต์) ยังคงถูกสร้างขึ้นโดยไม่ได้รับอนุญาตให้เขียนเป็นกลุ่มดังนั้นมีเพียงผู้ที่คอมมิตเท่านั้นที่สามารถพุชเข้าสู่ที่เก็บได้

เราแก้ไขปัญหานี้โดยตั้งค่า umask ของผู้ใช้ SSH เป็น 002 พร้อมกับกลุ่มที่เหมาะสมที่ผู้ใช้ทุกคนแชร์

เช่น

umask 002

โดยที่ 0 กลางอนุญาตให้เขียนกลุ่มโดยค่าเริ่มต้น


แน่ใจว่ามีคำสั่งดังกล่าวใน Unix หรือ Linux? เนื่องจากฉันค่อนข้างมั่นใจว่า umask ไม่ได้เจาะจงสถานที่
ม.ค. Hudec

ใช่ฉันขอโทษที่คุณพูดถูก - ฉันไม่รู้ว่าทำไมฉันถึงคิดว่ามันมีพารามิเตอร์ไดเร็กทอรีพิเศษ มันใช้ได้กับผู้ใช้ ฉันได้อัปเดตความคิดเห็นแล้ว
scipilot

2

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

ในการแก้ปัญหานี้คุณต้องมีบางสิ่งบางอย่างในใจระบบการอนุญาตของระบบปฏิบัติการเนื่องจากคุณถูก จำกัด โดยมันในกรณีนี้ Tu เข้าใจปัญหาได้ดีขึ้นตรวจสอบโฟลเดอร์ของ git object (.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


2

ลองปฏิบัติดังนี้

ไปที่เซิร์ฟเวอร์ของคุณ

    cd rep.git
    chmod -R g+ws *
    chgrp -R git *
    git config core.sharedRepository true

จากนั้นไปที่สำเนาการทำงานของคุณ (ที่เก็บในเครื่อง) และบรรจุใหม่โดย git repack master

ทำงานได้ดีกับฉัน


2

คุณสามารถใช้สิ่งนี้

sudo chown -R $USER:$USER "$(git rev-parse --show-toplevel)/.git"

1
นี่มันกำลังทำอะไร? ช่วยเพิ่มคำอธิบายได้ไหม
Anubian Noob

สิ่งนี้จะได้รับไดเรกทอรีระดับบนสุดของ repo ของคุณดังนั้นคำสั่งจะทำงานไม่ว่าคุณจะอยู่ที่ไหนใน repo ของคุณในปัจจุบัน หากคุณอยู่ในรูทแล้วคุณสามารถเรียกใช้ sudo chown -R $ USER: $ USER .git
TấnTâm

แก้ไขเป็นคำถามของคุณ มิฉะนั้นคำถามของคุณจะไร้ประโยชน์
Anubian Noob

2
sudo su root

chown -R user:group dir

dir คือ repo คอมไพล์ของคุณ

จากนั้นทำ:

git pull origin master

คุณจะเห็นการเปลี่ยนแปลงเกี่ยวกับการกระทำของผู้อื่น



1

ตกลง - ปรากฎว่าเป็นปัญหาการอนุญาตบน GitHub ที่เกิดขึ้นระหว่างการแยก emi / bixo ไปยัง bixo / bixo เมื่อ Tekkub แก้ไขแล้วก็จะเริ่มทำงานอีกครั้ง


เกิดอะไรขึ้นและแก้ไขอย่างไร ฉันรู้ว่าเมื่อสักครู่ที่ผ่านมา ... มีความคิดใดบ้าง?
Metagrapher

1
มันเป็นปัญหาในฝั่งของ GitHub - ดังนั้นฉันจึงไม่รู้ว่าพวกเขาทำอะไรเพื่อแก้ไขเพียงแค่ "Tekkub" ที่ GitHub บอกว่า "ฉันแก้ไขสิทธิ์แล้ว" จากนั้นก็ใช้งานได้
kkrugler

เย็น. ขอบคุณสำหรับข้อมูล. ฉันทำซ้ำการโคลน repo Suboptimal แต่ได้ผล ไชโย!
Metagrapher

4
เราเอ่อเราคงที่ผิดพลาด ดังนั้นเขาจะไม่ได้รับเช็คเงินเดือนอีกต่อไปดังนั้นมันจะทำงานเองตามธรรมชาติ
Alan

1

เนื่องจากข้อผิดพลาดเกี่ยวข้องกับสิทธิ์ในโฟลเดอร์วัตถุฉันจึงทำการ chown โดยตรงในโฟลเดอร์วัตถุและมันก็ใช้ได้ผลสำหรับฉัน


1

ใช้งานได้:

sudo chmod -R gituser.gituser objects

1
ไม่chmodเปลี่ยนสิทธิ์ของไฟล์และโหมดความต้องการเป็นอาร์กิวเมนต์ไม่ใช่ผู้ใช้และกลุ่ม เป็นอย่างใดอย่างหนึ่งchmod -R ${some_octal_num} blaหรือchown -R ${some_user}:${some_group} bla
Dennis Winter

1

ฉันเดาว่าหลายคนเหมือนฉันลงเอยในฟอรัมเช่นนี้เมื่อปัญหาคอมไพล์ตามที่อธิบายไว้ข้างต้นเกิดขึ้น อย่างไรก็ตามมีสาเหตุมากมายที่อาจนำไปสู่ปัญหาที่ฉันต้องการแบ่งปันสิ่งที่ทำให้เกิดปัญหาของฉันให้คนอื่นได้เรียนรู้ตามที่ฉันได้เรียนรู้จากด้านบนแล้ว

ฉันมี repos ของฉันบน Linux NAS จากไซต์คอม (อย่าซื้อ NAS จาก Sitecom, pleeaaase) ฉันมี repo ที่นี่ซึ่งโคลนบนคอมพิวเตอร์หลายเครื่อง แต่จู่ๆฉันก็ถูกปฏิเสธไม่ให้ไป เมื่อเร็ว ๆ นี้ฉันได้ติดตั้งปลั๊กอินเพื่อให้ NAS ของฉันสามารถยืนเป็นเซิร์ฟเวอร์ Squeezbox ได้

เซิร์ฟเวอร์นี้จะสแกนหาสื่อที่จะแบ่งปัน สิ่งที่ฉันไม่ทราบก็คือเป็นไปได้เนื่องจากข้อบกพร่องเซิร์ฟเวอร์เปลี่ยนการตั้งค่าผู้ใช้และกลุ่มเป็นบีบ: ผู้ใช้สำหรับไฟล์ทั้งหมดที่ดู และนั่นคือไฟล์ทั้งหมด ดังนั้นการเปลี่ยนแปลงสิทธิ์ที่ฉันต้องผลักดัน

เซิร์ฟเวอร์หายไปและมีการตั้งค่าสิทธิ์ที่เหมาะสมอีกครั้งและทุกอย่างทำงานได้อย่างสมบูรณ์

ฉันใช้

chmod -R g+ws *
chown -R <myuser>:<mygroup> *

โดยที่ myuser และ mygroup นอกหลักสูตรจะต้องถูกแทนที่ด้วยการตั้งค่าที่เหมาะสมสำหรับระบบของคุณ ลองใช้ git: git หรือ gituser: gituser หรืออย่างอื่นที่คุณอาจชอบ,


1

ตรวจสอบที่เก็บ: $ git remote -v

origin  ssh://git@example.com:2283/srv/git/repo.git (fetch)
origin  ssh://git@example.com:2283/srv/git/repo.git (push)

โปรดทราบว่ามีสตริงย่อย "git @" ที่นี่มันสั่งให้ git พิสูจน์ตัวตนเป็นชื่อผู้ใช้ 'git' บนเซิร์ฟเวอร์ระยะไกล หากคุณข้ามบรรทัดนี้ git จะตรวจสอบสิทธิ์ภายใต้ชื่อผู้ใช้อื่นดังนั้นข้อผิดพลาดนี้จะเกิดขึ้น


1

ในกรณีของฉันไม่มีการรับรองความถูกต้องแบบรวม (เช่นภายในโดเมน + บริการคล้าย AD) ระหว่างเครื่องของฉันกับเซิร์ฟเวอร์เสมือน git ดังนั้นผู้ใช้และกลุ่ม git จึงเป็นแบบโลคัลสำหรับเซิร์ฟเวอร์เสมือน ในกรณีของฉันผู้ใช้ระยะไกลของฉัน (ซึ่งฉันใช้เพื่อล็อกอินเข้าสู่เซิร์ฟเวอร์ระยะไกล) ไม่ได้ถูกเพิ่มลงในกลุ่มคอมไพล์ระยะไกล

ssh root@<remote_git_server>
usermod -G <remote_git_group> <your_remote_user>

หลังจากนั้นตรวจสอบสิทธิ์ตามที่อธิบายไว้ในโพสต์ด้านบน ...


1

คุณลองsudo git push -u origin - allหรือไม่? บางครั้งมันเป็นสิ่งเดียวที่คุณต้องการเพื่อหลีกเลี่ยงปัญหานี้ ระบบจะขอรหัสผ่านระบบผู้ดูแลระบบซึ่งเป็นรหัสที่คุณสามารถเข้าสู่ระบบเครื่องของคุณได้และนั่นคือสิ่งที่คุณต้องผลักดันหรือยอมรับหากเป็นกรณีนี้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.