त्रुटि के साथ खींचने की कोशिश कर रहा है: खोल नहीं सकता.git/FETCH_HEAD: अनुमति अस्वीकार कर दी गई है




github pull (11)

कृपया मेरी मदद करें, मैं इसे अपने टर्मिनल में चलाने की कोशिश कर रहा हूं:

[email protected]:~/CollegePortal$ git pull
error: cannot open .git/FETCH_HEAD: Permission denied

तब मैं इसे आजमाता हूं

[email protected]:~/CollegePortal$ sudo git pull
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

मेरी मदद करो, मैं इस समस्या को समझ नहीं पा रहा हूं।


यह मेरे लिए काम किया:

  1. राइट क्लिक करें .git फ़ोल्डर
  2. जानकारी प्राप्त करें पर क्लिक करें
  3. अपने उपयोगकर्ता को अनुमति सेट करें
  4. कोग आइकन पर क्लिक करें और संलग्न वस्तुओं पर लागू क्लिक करें

गिट में त्रुटियों से इनकार करने की अनुमति नहीं है। 🎉


इस तरह से कोशिश करें,

चरण 1: सबसे पहले जांचें कि आप कौन हैं? यह वर्तमान उपयोगकर्ता नाम जैसे ubuntu वापस कर देगा

$ whoami 

चरण 2: फिर उस मामले में, अपने वर्तमान उपयोगकर्ता को अनुमति दें, उबंटू द्वारा

sudo chown -R ubuntu .git/

उस समस्या को मिला जब .git फ़ोल्डर छिपा हुआ है और इसमें सभी फ़ाइलें भी छिपी हुई हैं। रिकर्सिव फाइल अपडेट के बिना केवल .git फ़ोल्डर छुपाएं और यह काम करेगा।


ऐसा लगता है कि पहला ऐसा काम नहीं कर रहा है क्योंकि आपके उपयोगकर्ता को उस निर्देशिका को बदलने के लिए अनुमति नहीं है, और दूसरा क्योंकि आपके रूट उपयोगकर्ता के पास उस गिट रिपोजिटरी तक पहुंचने के लिए सही एसएसएच कुंजी नहीं है।

आप जो करने का प्रयास कर रहे हैं उसके आधार पर, किसी भिन्न निर्देशिका में रिपॉजिटरी को क्लोन करना बेहतर हो सकता है, या शायद आपके उपयोगकर्ता के लिए पूर्ण पहुंच प्राप्त करने के लिए वर्तमान निर्देशिका को chown जा सकता है


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


मुझे विंडोज़ पर पहला मुद्दा (FETCH_HEAD अनुमति अस्वीकार कर दी गई थी)।

मैंने गिट बैश को व्यवस्थापक के रूप में चलाकर इसे ठीक किया (राइट क्लिक करें, व्यवस्थापक के रूप में चलाएं)।


मेरे मामले में, मैंने केवल .git / FETCH_HEAD फ़ाइल तक पहुंच पढ़ी थी। पुल अनुरोध करने में सक्षम होने के लिए मुझे "सुडो chmod g + w .git / FETCH_HEAD" करना था।


यदि आप समूह को अनुमति देना चाहते हैं,

sudo chmod g+w .git -R

मेरे लिए सबसे अच्छा काम किया।


यह एक यूनिक्स अनुमति समस्या है। भंडार क्लोनिंग के लिए सूडो का उपयोग न करें। आपके पास रूट के समान एसएसबी कुंजी नहीं है और आपको वैसे भी रूट के रूप में काम नहीं करना चाहिए। फ़ाइलों पर अनुमतियों को खोजने के लिए ls -la आज़माएं और उन्हें ठीक करने के लिए chmod (या सूडो चोउन) का उपयोग करें। उम्मीद है की वो मदद करदे।


विंडोज 7 चला रहा है, जब मुझे यह समस्या थी तो ऐसा इसलिए था क्योंकि मैंने .git फ़ोल्डर को छुपाया था। अनुमतियां ठीक थीं, यह सिर्फ छिपी हुई थी। फ़ोल्डर को हल किया गया यह दिखा रहा है।


.git निर्देशिका के स्वामी और समूह को देखें (पहले .git की मूल निर्देशिका पर जाएं) ll .git , समूह और निर्देशिका के मालिक को देखें, अपने उपयोगकर्ता को मालिक के समूह में sudo usermod -a -G yourusername groupsofonwner , फिर लॉगआउट => लॉगिन और सब कुछ काम हो रहा है।

तो सारांश में

  1. गिट की मूल निर्देशिका पर जाएं

    $cd your path
    
  2. .git direcotry के समूह के मालिक को ढूंढें

    $ll .git     
    
  3. उस उपयोगकर्ता को अपना उपयोगकर्ता जोड़ें

    $usermod -a -G yourusername ownergroupofgit
    
  4. इस परिवर्तन के लिए लॉगआउट और सिस्टम में लॉगिन प्रभाव डालें।

  5. का आनंद लें ;)







pull