form - git download



गिट पुल त्रुटि: अस्थायी sha1 फ़ाइल नाम बनाने में असमर्थ (13)

Heroku पर तैनाती की कोशिश करते समय मुझे यह समस्या थी। बाहर निकलता है मेरे पास एक मणि था जिसने टीएमपी / निर्देशिका में एक फाइल लिखी थी और उसकेोकू को यह पसंद नहीं आया था। फाइल को बाहर निकाला और voila, समस्या हल हो गई। इसे देखें: https://devcenter.heroku.com/articles/read-only-filesystem

https://ffff65535.com

मुझे कई मशीनों (काम, घर, लैपटॉप) पर स्थानीय रूप से विकसित करने में सक्षम होने के लिए एकमात्र वास्तविक उद्देश्य के साथ एक छोटा गिट रेपो सेटअप मिला है। इस प्रकार मेरे पास एक शाखा है और मैं कंप्यूटर छोड़ने के बाद प्रतिबद्ध / धक्का देता हूं, एक बार जब मैं अगली बार बैठता हूं तो खींचता हूं। ठीक है, अभी तक काम किया है। अब जब मैं अपनी 'लाइव टेस्ट' मशीन खींचता हूं, तो मुझे निम्न मिलता है:

remote: Counting objects: 38, done.
remote: Compressiremote: ng objects: 100% (20/20), done.
remote: Total 20 (delta 17), reused 0 (delta 0)
error: unable to create temporary sha1 filename .git/objects/ed: File exists

fatal: failed to write object
fatal: unpack-objects failed

नेट के चारों ओर खोजना मुझे एकमात्र वास्तविक उत्तर मिल सकता था: http://marc.info/?l=git&m=122720741928774&w=2 जो मूल रूप से कहता है कि यह एक फर्जी त्रुटि है जो ढेर के शीर्ष पर है और इस प्रकार कुछ भी नहीं कहता है वास्तव में क्या गलत है के बारे में।

क्या गलत है यह जानने के लिए मैं यहां से कहां से जाऊं?

संपादित करें: स्थानीय प्रतिलिपि हटा दी गई और फिर से क्लोन किया गया


Sshfs पर काम करते समय मुझे इस तरह की त्रुटियां मिलती हैं। यह अनमाउंटिंग के बाद खुद को मरम्मत करता है और फिर शेयर को फिर से घुमाता है।


इसका उल्लेख है " पुन: बग? गीट svn fetch:" अस्थायी sha1 फ़ाइल नाम /home/andres/git/public/crystal.g बनाने में असमर्थ ":

भंडार repacking के बाद समस्या चली गई है। वास्तव में बल्कि अजीब।

क्या आपने एक मरम्मत की कोशिश की?

git-repack का उपयोग उन सभी ऑब्जेक्ट्स को गठबंधन करने के लिए किया जाता है जो वर्तमान में पैक में "पैक" में नहीं रहते हैं। इसका उपयोग मौजूदा पैक को एक एकल, अधिक कुशल पैक में पुन: व्यवस्थित करने के लिए भी किया जा सकता है।
एक पैक ऑब्जेक्ट्स का एक संग्रह है, व्यक्तिगत रूप से संपीड़ित, डेल्टा संपीड़न के साथ, एक ही फाइल में संग्रहीत, एक संबंधित इंडेक्स फ़ाइल के साथ।
पैक का उपयोग मिरर सिस्टम, बैकअप इंजन, डिस्क स्टोरेज इत्यादि पर लोड को कम करने के लिए किया जाता है।

और क्या आपने गिट के नवीनतम संस्करण में अपग्रेड करने का प्रयास किया?

आपके भंडार को "साफ" करने के लिए सुरक्षित से अधिक आक्रामक लोगों तक चलाने के लिए आपके पास अलग-अलग आदेश हैं:

$ git-prune
$ git-gc --aggressive
$ git-repack
$ git-repack -a
$ git-prune-packed

जैसा कि " गिट कचरा संग्रह में पूरी तरह से काम नहीं लग रहा है " में उल्लेख किया गया है, एक git gc --aggressive न तो पर्याप्त है या यहां तक ​​कि पर्याप्त है।

सबसे प्रभावी संयोजन git repack जोड़ना होगा, लेकिन git prune भी:

git gc
git repack -Ad      # kills in-pack garbage
git prune           # kills loose garbage

इसके लिए क्या फायदेमंद है, जब मुझे यह समस्या git-repack लेकिन जब मैं काम करता git-repack मैंने git-repack और git-gc की कोशिश की, लेकिन न तो काम किया। मुझे एक अनुमति मिली त्रुटि से इंकार कर दिया, जिसने मुझे पूरे रिपो को उपयोगकर्ता के लिए रिकर्सिव रूप से chown , जिसकी मुझे उम्मीद थी, और फिर मैं बिना किसी समस्या के पुल / पुश / खींच सकता था।


कुछ समाधानों का प्रयास किया लेकिन अंततः एहसास हुआ कि हमारे गिट सर्वर की डिस्क में कोई खाली स्थान नहीं छोड़ा गया था।


मुझे एक ही त्रुटि थी, और यह अनुमति अनुमति नहीं थी (मैं भंडार का एकमात्र उपयोगकर्ता हूं), और जीसी / रिपैक तकनीकों में से कोई भी काम नहीं करता है। आखिरकार मैंने पुराने रिमोट रिपोजिटरी को हटा दिया और एक नया धक्का दिया। सौभाग्य से यह काफी छोटा था।

लियाम


मुझे हाल ही में यह मुद्दा था और मैंने इस धागे पर कुछ भी भाग्य के साथ सब कुछ करने की कोशिश की। मेरे वीपीएस पर बहुत सी डिस्क स्पेस छोड़ी गई थी लेकिन यह पता चला कि तैनाती फ़ोल्डर को साफ करने के कारण मैंने इनोड सीमा को पार कर लिया था (शायद जेएस लिब्स के कारण मैं उन्हें क्रंच करने से पहले 100 फाइलों के साथ शामिल था)।

मैंने पुराने तैनाती का एक भार हटा दिया और सब कुछ ठीक काम किया।

मुझे एहसास है कि यह एक बढ़िया मामला है लेकिन अगर यह सब कुछ विफल रहता है तो यह ध्यान में रखना कुछ है।


मेरा मुद्दा एक अनुमति समस्या थी

मैं निर्देशिका ऊपर गया तो सीपी-आर repo repo_copy

तो सब कुछ फिर से काम किया।

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


मैंने एक बार यह त्रुटि देखी है और इसे अनुमति समस्याओं पर ट्रैक किया है। मुझे नहीं पता था कि यह कैसे हुआ था, लेकिन किसी भी तरह गिट एक समूह के रूप में चलाया गया था जिसमें कुछ ऑब्जेक्ट निर्देशिका के लिए लेखन अनुमति नहीं थी।

मुझे कोड में इसके लिए कोई स्पष्ट कारण नहीं दिख रहा था और अनुमान लगाया गया था कि यह एक ओएस एक्स अनुमति समस्या थी, संभवतः कुछ मैला बनाने या इंस्टॉल करने से।


मैंने यह त्रुटि देखी है जब एकाधिक उपयोगकर्ता एक ही भंडार पर प्रतिबद्ध होते हैं, जिसके परिणामस्वरूप एसएसएच और उमास्क के परिणामस्वरूप समूह-लेखन अनुमति समस्याएं होती हैं

आप कॉन्फ़िगरेशन के [कोर] अनुभाग में sharedrepository=true सेट करके नई फ़ाइलें g + w मोड को बनाए रख सकते हैं:

cd /my/shared/repo.git
git repo-config core.sharedRepository true

# (might also need to "chmod -R g+wX ." for each 
# user that owns files in .git/objects)

संपादित करें:

यह विधि केवल पहले से ही मौजूदा रिपो पर लागू होती है। आप रिपोजिटरी के निर्माण पर एक बार सही कर सकते हैं: git --bare init --shared


व्यक्तिगत रूप से, मुझे यह समस्या मिली जब मैंने गिट पुश मूल मास्टर किया था। मेरे लिए समाधान था: मेरे सर्वर पर, मैं उस निर्देशिका में रूट के साथ लॉगिन करता हूं जिसमें मेरा भंडार होता है और पुनरावर्ती होता है:

chown -hR MyGitUser MyRepo

और सब ठीक काम करता है

मेरे पास केवल एक गिट उपयोगकर्ता है और अन्य अपनी सार्वजनिक कुंजी प्रकाशित करके एसएसएच से जुड़ते हैं। यदि आप कई गिट उपयोगकर्ताओं को कॉन्फ़िगर करते हैं तो आपको प्रत्येक उपयोगकर्ता के लिए ऐसा करना होगा।


स्थानीय मैक पर लिनक्स सर्वर पर काम करना - मैंने बिना किसी किस्मत के कुछ सुझावों की कोशिश की। रिबूट किया और फिर यह काम किया।

यह वास्तव में एक उचित समाधान नहीं है, लेकिन हालांकि यह किसी को वहां से मदद कर सकता है।


git push का उपयोग करते समय मुझे इस समस्या का सामना करना पड़ा

फिर मैं git gc चलाता हूं, यह काम करता है।

गिट-जीसी (1) मैनुअल पेज से:

गिट-जीसी - अनावश्यक फ़ाइलों को क्लीनअप करें और स्थानीय भंडार को अनुकूलित करें





git