2011-06-12 9 views
15

मैंने अपने सर्वर पर एक गिट भंडार स्थापित किया है। एक नया उपयोगकर्ता 'गिट' बनाया गया। मेरे प्रतिनिधि /srv/git/example.git में स्थित हैं। मैं git remote add origin [email protected]/srv/git/example.git करने में सक्षम था तो मैंने अपने परिवर्तन जोड़े और प्रतिबद्ध किए।गिट पुश करते समय .git/निर्देशिका के लिए अनुमति को कैसे ठीक किया जाए?

sudo chown -R git:git /srv/git/` 

यह मेरी समस्या तय लेकिन अगर ऐसा करने का सही बात थी मैं सोच रहा हूँ: सर्वर मैं भाग गया पर

fatal: unable to create temporary file: permission denied' and 'fatal: sha1 file write error: invalid argument'

:

हालांकि जब मैं git push origin master की कोशिश की इस पर विफल रही है?

उत्तर

19

On the server I ran sudo chown -R git:git /srv/git/ - this fixed my problem but I am wondering if this was the correct thing to do?

बिल्कुल। पहले समस्या यह थी कि गिट उपयोगकर्ता, जिसे आप एसएसएच के माध्यम से लॉग इन कर रहे हैं, रिपॉजिटरी को नहीं लिख सका।

आपकी ज़रूरतों के आधार पर, आप उपयोगकर्ताओं और एसएसएच कुंजी के विभिन्न संयोजनों, या कई अतिरिक्त कार्यक्रमों (गिटोलाइट इत्यादि) में से एक पर विचार कर सकते हैं जिनका उपयोग अधिक बारीक नियंत्रण तक पहुंचने के लिए किया जा सकता है।

7

सबसे पहले, अपने रिमोट .git डीआईआर में फ़ाइल अनुमतियों को ठीक करें।

sudo chmod -R ug+w /var/www/.git 
sudo chown -R git:git /var/www/.git 

या root:root आप धक्का पहुँच के लिए root समूह के सदस्यों आवंटित करने के लिए चाहते हैं।

गंतव्य होस्ट पर फिर Git भंडार के रूप में साझा निर्धारित करने की आवश्यकता है, तो दूरस्थ जरूरतों पर निम्न आदेश चलाने के लिए:

git config core.sharedRepository group 
संबंधित मुद्दे