ত্রুটির সাথে গিট টানতে চেষ্টা করা: .git / FETCH_HEAD খুলতে পারে না: অনুমতি অস্বীকার করা হয়েছে


209

দয়া করে আমাকে সহায়তা করুন, আমি এটি আমার টার্মিনালে চালানোর চেষ্টা করছি:

asgard@asgard-A7N8X2-0:~/CollegePortal$ git pull
error: cannot open .git/FETCH_HEAD: Permission denied

তারপরে আমি এটি চেষ্টা করে দেখি

asgard@asgard-A7N8X2-0:~/CollegePortal$ sudo git pull
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

আমাকে সাহায্য করুন, আমি এই সমস্যাটি বুঝতে পারি না।


আপনি কি গিথব অ্যাকাউন্টে আপনার সর্বজনীন কী যুক্ত করেছেন?
ম্যাডহেড

3
আপনি যে স্থানীয় ডিরেক্টরি এবং ফাইলগুলি টানতে চান সেখানে লেখার অনুমতি আছে? এছাড়াও, সম্ভবত sudoএটি এখানে মোটেও সহায়তা করে না কারণ এটি আপনার কাছে ssh কী (অমূলের নয়) অ্যাক্সেসের প্রয়োজন।
বেনিয়ামিন ব্যানিয়ের

আমার এই সমস্যাটি হয়েছিল এবং আমার ব্যবহারকারীকে সেই ফোল্ডারে (উইন্ডোজ) সংশোধন ও সম্পূর্ণ অ্যাক্সেসের অনুমতি দিয়ে সমাধান করেছি
ফ্র্যাঙ্ক

উত্তর:


193

দেখে মনে হচ্ছে প্রথমটি কাজ করছে না কারণ আপনার ব্যবহারকারীর সেই ডিরেক্টরিটি পরিবর্তন করার অনুমতি নেই এবং দ্বিতীয়টি কারণ আপনার রুট ব্যবহারকারীর সেই গিট সংগ্রহস্থল অ্যাক্সেসের জন্য সঠিক এসএসএইচ কী নেই।

আপনি যা করার চেষ্টা করছেন তার উপর নির্ভর করে, কোনও আলাদা ডিরেক্টরিতে সংগ্রহস্থলটি ক্লোন করা ভাল, বা chownআপনার বর্তমান ব্যবহারকারীর জন্য সম্পূর্ণ অ্যাক্সেসের জন্য বর্তমান ডিরেক্টরিতে ক্লোন করা ভাল be


আমি একই ধরণের সমস্যার মুখোমুখি হয়েছি এবং আমি নিশ্চিত না যে আমি আমার www-dataব্যবহারকারীকে .gitডিরেক্টরি আপডেট করার অনুমতি দিতে পারি কিনা । আমি ব্রাউজারে পিএইচপি ও HTTP ব্যবহার করে শেল স্ক্রিপ্ট কল করছি। বিশদ এখানে
কিলাব্যাগ

13
এটি প্রায়শই ঘটে যখন আপনি দুর্ঘটনাক্রমে ভুলে যান যে আপনি sudo suচালিয়ে গেছেন এবং কোনও রেপোর মূল হিসাবে আপনার অভিনয়। sudo chown -R <username> .এই ডিরেক্টরিতে একটি সাধারণ ম্যাজিক কাজ করে!
রায়

149

আপনার কাছে পর্যাপ্ত অনুমতি আছে কিনা তা পরীক্ষা করুন .git/ডিরেক্টরিতে । আপনার লেখার অনুমতি থাকা উচিত। আপনি নিম্নলিখিত কমান্ড দিয়ে সেগুলি সেট করতে পারেন।

আপনার প্রকল্প ফোল্ডারে যান:

chown -R youruser:yourgroup .git/

1
এটি আমাকে দেয়chown: youruser: Invalid argument
জাকদানিস

43
এটি হওয়া উচিতchown -R youruser .git/
মিশ্রিত করুন

1
chown .git/এটির কাজ করার জন্য আমার এবং তার পিতামাতার ফোল্ডারটি ছিল
জাদুবজ

এটি খুব সাধারণ সমস্যার মতো মনে হচ্ছে .. ঠিক আছে আপনি যদি বিভিন্ন ব্যবহারকারীর সাথে এবং অন্য ব্যবহারকারীর কাছ থেকে কিছু কাজ করেন তবে আপনি নিজের অনুমতিগুলি কিছুটা জটিল করে দিয়েছেন।
রেনা হাহলে

যদি chownচেয়ে কাজ করছে না এই কমান্ডটি প্রয়োগsudo chmod 0777 -R .git/
কিরণ

48

আপনি যদি গ্রুপটিকে অনুমতি দিতে চান,

sudo chmod g+w .git -R

আমার জন্য সবচেয়ে ভাল কাজ।

ম্যাকোসের জন্য

sudo chmod -R g+w .git 

29

এটি একটি ইউনিক্স অনুমতি সমস্যা। sudoসংগ্রহস্থলটিকে ক্লোন করার জন্য ব্যবহার করবেন না । আপনার কাছে মূল হিসাবে একই ssh কী নেই এবং আপনার আর কোনওভাবে রুটের মতো কাজ করা উচিত নয়। ls -laফাইলগুলিতে অনুমতিগুলি খুঁজতে চেষ্টা করুন এবং সেগুলি ঠিক করতে chmod(বা sudo chown) ব্যবহার করুন। আশা করি এইটি কাজ করবে.


ঠিক এই! আমি এই সমস্যাটি পেরিয়ে এসেছি কারণ sudo cloneএক্সকোডের নতুন লাইসেন্স চুক্তি স্বীকার করার জন্য আমাকে করতে হয়েছিল। উত্তরটি হল চুক্তিটি স্বীকার করা, তারপরে কোনও সুডো দিয়ে ক্লোন করুন।
বার্নাবি

24

আমার ক্ষেত্রে এটির পরে ভাল কাজ করুন:

rm -f .git/FETCH_HEAD

git branch -u

1
এই বিশেষ ক্ষেত্রে এটি আমার জন্যও কাজ করেছে ।
পি মেরজি

আমার জন্য, এটি সমাধানও ছিল। এই সমাধান বিকল্পের জন্য আপনাকে ধন্যবাদ।
ফ্রান্সিসকো মারিয়া ক্যালিস্টো

21

এই ইস্যুটির উত্তরটি নিশ্চিত করুন যে .git / FETCH_HEAD এর লেখার সুযোগ রয়েছে এবং আপনি প্রস্তুত হয়ে যাবেন set

আমার উইন্ডোজটিতে এই সমস্যা ছিল এবং এটি লেখার অনুমতি দিয়ে সমাধান করা হয়েছিল।

ইউনিক্সে chmod a+rw .git/FETCH_HEADপ্রকল্পের সংগ্রহস্থল থেকে চালানো যায় যার পরে এটি কাজ করা উচিত।


সঙ্গে does't কাজ .git/FETCH_HEADএকা যদি অনুমতি বিষয়ে হয় .git
সিউর

17

এইভাবে চেষ্টা করুন,

পদক্ষেপ 1: প্রথমে আপনি কে? এটি বর্তমান ব্যবহারকারীর নাম যেমন উবুন্টু ফিরিয়ে দেবে

$ whoami 

পদক্ষেপ 2: তারপরে আপনার বর্তমান ব্যবহারকারীর কাছে অনুমতিটি নির্ধারণ করুন, সেই ক্ষেত্রে উবুন্টু দ্বারা

sudo chown -R ubuntu .git/

আমার জন্য এই কাজ করার সময় হরতাল বক্তৃতা ইনস্টলেশন চলমান উবুন্টু lightsail
Jide

11

আমার ক্ষেত্রে, আমি কেবলমাত্র .git / FETCH_HEAD ফাইলটিতে অ্যাক্সেস পড়ি। আমাকে একটি অনুরোধ করতে সক্ষম হবার জন্য আমাকে "sudo chmod g + w .git / FETCH_HEAD" করতে হয়েছিল।


সঙ্গে does't কাজ .git/FETCH_HEADএকা যদি অনুমতি বিষয়ে হয় .git
সিউর

আমাকে দলটির গিট ফোল্ডারে লেখার অ্যাক্সেসের অনুমতি দিতে হয়েছিলsudo chmod g+w .git/FETCH_HEAD
উইলিয়াম

sudo chmod g+w .git/FETCH_HEAD, নিখুঁত সমাধান.
26ষি কুলশ্রেষ্ঠ

9

আমি উইন্ডোজটিতে প্রথম ইস্যু (FETCH_HEAD অনুমতি অস্বীকার) করছিলাম।

প্রশাসক হিসাবে গিট বাশ চালিয়ে এটি ঠিক করেছি (ডান ক্লিক করুন, প্রশাসক হিসাবে চালান)।


9

আপনি যদি নিজের মালিকানাধীন দলে নিজেকে যুক্ত না করেন .git/তবে আপনার উচিত।

sudo usermod -a -G $(stat -c '%G' .git) $USER
sudo chmod g+u .git -R
sudo chmod g+u .gitignore
su - $USER

এটি কী করে:

  1. কোন গোষ্ঠীর মালিকানা রয়েছে .git/এবং আপনার ব্যবহারকারীকে সেই গোষ্ঠীতে যুক্ত করেছে।
  2. গ্রুপ সদস্যদের মালিকদের মতো একই অনুমতি রয়েছে তা নিশ্চিত করে .git/
  3. .gitignoreএটির জন্য এটি পুনরাবৃত্তি করে , যা আপনার সম্ভবত প্রয়োজন হবে
  4. আপনার গ্রুপ সদস্যতা ফাইলের অনুমতিগুলি রিফ্রেশ করার জন্য আপনাকে লগ আউট এবং পিছনে প্রবেশ করবে

আপনি যদি সম্প্রতি এই জাতীয় কিছু করেন (নিজের মালিকানাধীন গোষ্ঠীতে নিজেকে যুক্ত করেছেন .git/), .git/FETCH_HEADআপনার নিজের সময় লিখতে সক্ষম হবার আগে আপনাকে লগ আউট করে ফিরে যেতে হবে git pull


7

কমান্ডটি চালিয়ে আপনার বর্তমান ব্যবহারকারীর কাছে অনুমতি সেট করুন

$ sudo chown -R <username> .git/



4

উইন্ডোজ 7 চালানো, যখন আমার এই সমস্যাটি ছিল তখন এটি ছিল কারণ আমি .git ফোল্ডারটি লুকিয়ে রেখেছিলাম। অনুমতিগুলি ঠিক ছিল, এটি কেবল লুকানো ছিল। ফোল্ডারটি দেখানো এটি সমাধান করেছে।


লুকানো ডিরেক্টরি, কে ছুঁড়ে ফেলবে।
ইয়ান নিউল্যান্ড


3

এটি আমার পক্ষে কাজ করেছে:

  1. .Git ফোল্ডারে রাইট ক্লিক করুন
  2. তথ্য পেতে ক্লিক করুন
  3. আপনার ব্যবহারকারীকে অনুমতি সেট করুন
  4. কগ আইকনে ক্লিক করুন এবং বদ্ধ আইটেমগুলিতে প্রয়োগ ক্লিক করুন

আর কোনও অনুমতি গিটের ত্রুটিগুলি অস্বীকার করেছে। 🎉


2

.git(প্রথমে .git এর পিতামহিত ডিরেক্টরিতে যান) এর সাথে ডিরেক্টরির মালিক এবং গোষ্ঠীটি দেখুন, ডিরেক্টরিটির ll .gitগোষ্ঠী এবং মালিককে দেখুন, আপনার ব্যবহারকারীর সাথে মালিকের দলে যোগ করুনsudo usermod -a -G yourusername groupsofonwner , তারপরে লগআউট => লগইন এবং সমস্ত কিছু কাজ করছে ।

সংক্ষেপে তাই

  1. গিটারের প্যারেন্ট ডিরেক্টরিতে যান

    $cd your path
    
  2. .gitনির্দেশিকাটির গোষ্ঠী মালিককে সন্ধান করুন

    $ll .git     
    
  3. আপনার ব্যবহারকারীকে সেই গোষ্ঠীতে যুক্ত করুন

    $usermod -a -G yourusername ownergroupofgit
    
  4. এই পরিবর্তনটিতে সিস্টেমে লগআউট এবং লগইন কার্যকর হয়।

  5. উপভোগ কর ;)


2

.Git ফোল্ডারটি যখন লুকানো থাকে এবং এতে থাকা সমস্ত ফাইলও লুকিয়ে থাকে তখন তা পেয়েছি। পুনরাবৃত্ত ফাইল আপডেট ছাড়াই কেবল .git ফোল্ডারটি গোপন করুন এবং এটি কার্যকর হবে will


2

এই ত্রুটির কারণগুলি বহুগুণ হতে পারে তবে আমার ক্ষেত্রে আমি রুট দিয়ে শাখা আপডেট করেছি যখন আমি সাধারণ ব্যবহারকারীর সাথে এটি আপডেট করার চেষ্টা করি তখন এটি আমাকে ত্রুটি দেয়।

উভয় সমাধান চেষ্টা করুন আপনার জন্য কাজ করা উচিত

1- sudo chmod g+w .git -R

যদি এটি কাজ না করে তবে দয়া করে পরবর্তী সমাধানের চেষ্টা করুন এটি আপনার সমস্যার সমাধান করবে

2 - rm -f .git/FETCH_HEAD

1

উইন্ডোজের জন্য গিট এক্সটেনশনগুলি ব্যবহার করার সময় আমার এই বার্তাটি ছিল। আমার ফিক্সটি ছিল কেবল গিট এক্সটেনশানগুলি বন্ধ করে প্রশাসক হিসাবে আবার খোলার


1

আমার ক্ষেত্রে,

sudo chmod ug + wx .git -R

এই কমান্ড কাজ করে।


1

আপনি যখন .git ফোল্ডারে পর্যাপ্ত অনুমতি না দেন তখনই এই সমস্যাটি দেখা দেয়। সমস্যাটি সমাধান করতে-

  1. প্রথমে আপনার কার্যনির্বাহী ডিরেক্টরিতে নেভিগেট করুন।
  2. এই আদেশটি লিখুন-

    sudo chmod a + rw .git -R

আশা করি এটা সাহায্য করবে..!!


1

আমার ঠিক একই ত্রুটি ছিল তবে আমার ক্ষেত্রে সমস্যাটি ছিল পিএইচপি সংস্করণে আপগ্রেড করার পরে অ্যাপাচি পুনর্নির্মাণের ফল। দীর্ঘ গল্প সংক্ষিপ্ত, আমি অ্যাপাচি মডিউল 'সুেক্সেক' ইনস্টল করতে ভুলে গেছি।

গোষ্ঠী বা মালিকানার সাথে এর কোনও যোগসূত্র ছিল না। এটি জানতে আমাকে কেবল দু'দিন সময় লেগেছে, কেউ আমাকে গুলি করেছে ...


1

আমার ক্ষেত্রে এনটিএফএস ডিস্কে প্রজেক্ট ফোল্ডার সহ আমার একটি দ্বৈত-বুট সিস্টেম (উইন্ডোজ 10 এবং লিনাক্স) ছিল। দেখা গেল যে অন্য আপডেটে উইন্ডোজ 10 এর সেটিংসে নিজেই "দ্রুত প্রারম্ভ" সক্ষম করে। উইন্ডোজটিতে এটি পরীক্ষা করে দেখার পরে - "ত্রুটি: .git / FETCH_HEAD খুলতে পারে না: লিনাক্সে অনুমতি অস্বীকার করা হয়েছিল"।


0

আমি এটি পেয়েছি কারণ আমার বাক্সে আমার একাধিক ব্যবহারকারীর অ্যাকাউন্ট রয়েছে। আমি ব্যবহারকারী এ হিসাবে লগ ইন ছিল এবং বি বি ব্যবহারকারীর জন্য একটি ডিরেক্টরিতে ছিলাম A ব্যবহারকারী এ-এর ব্যবহারকারীর বি এর স্টাফের অনুমতি ছিল না। একবার আমি বুঝতে পেরেছিলাম যে আমি ফাইল সিস্টেমে ছিলাম এমন জায়গায় আমি ছিলাম না, এই ত্রুটিটি বোধগম্য হয়েছিল।


0

যদি আপনি উইন্ডোজ সার্ভারে একই সমস্যাটি খুঁজে পান, তবে আপনাকে প্রশাসকের অনুমতি হিসাবে পর্যাপ্ত অনুমতি সহ কমান্ড লাইনটি চালানো দরকার।


0

MacOS ব্যবহারকারীর জন্য (যদি উচ্চ সিয়েরা বা উচ্চতর সংস্করণ হয়) এটি ব্যবহার করুন:

sudo chown -R $(whoami) $(brew --prefix)/*

-1

টিএল; ডিআর: ডুয়াল বুট সিস্টেমে উইন্ডোজের জন্য ফাস্ট স্টার্টআপ বন্ধ করে দিন

আমি আমার দ্বৈত বুট উবুন্টু / উইন্ডোজ সিস্টেমে এই সমস্যাটি নিয়ে আসছিলাম। উইন্ডোজ (এনটিএফএস পার্টিশন) এর সাথে ভাগ করা কোনও পার্টিশনে আমি কিছুই লিখতে পারিনি।

আমি সম্প্রতি উভয়ই পুনরায় ইনস্টল করেছি এবং উইন্ডোজের "ফাস্ট স্টার্টআপ" চালু করতে ভুলে গিয়েছি । আমি উইন্ডোজগুলিতে পুনরায় বুট করার পরে সমস্ত বৈশিষ্ট্য ফিরে আসল এবং সেই বৈশিষ্ট্যটি বন্ধ করে আবার চালু করার পরে।


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.