2012-01-13 21 views
9

पर काम करता है मैंने एक गिट सबमिशन बनाया और इसे हमारे मुख्य भंडार पर धक्का दिया। यह ठीक काम करता है और मैं एक ब्राउज़र के माध्यम से भंडार में सबमिशन देख सकता हूं।गिट सबमिशन अपडेट एक मशीन पर त्रुटि के साथ विफल रहता है लेकिन दूसरी मशीन

परीक्षण करने के लिए यह ठीक काम करता है, मैंने स्रोत को ताजा निर्माण पेड़ प्राप्त करने का प्रयास किया। सबसे पहले मैंने git submodule init और फिर git submodule update <submodule-name> चलाया।

इस त्रुटि के साथ विफल:

error: pathspec 'x/mypkg' did not match any file(s) known to git. Did you forget to 'git add' 

मैं .gitmodules को submodule के लिए, लेकिन कोई भाग्य के साथ यूआरएल जोड़ने की कोशिश की।

उत्तर

3

यह संभावना है क्योंकि आप या आपकी टीम के किसी व्यक्ति ने आपके सबमिशन में परिवर्तन किया है जो अप्रकाशित (प्रतिबद्ध है, लेकिन दूरस्थ सर्वर पर धक्का नहीं दिया गया है)। इसके बाद उन्होंने सबप्रोड्यूल में गिट प्रतिबद्धता के संदर्भ के साथ सुपरप्रोजेक्ट प्रकाशित किया जो कि गिट सर्वर पर मौजूद नहीं है। तो गिट एक विशिष्ट सबमिशन गिट प्रतिबद्ध आईडी को खींचने की कोशिश कर रहा है जिसे वह नहीं मिला।

यह मामला होगा यदि परिवर्तन आपकी मशीन पर या किसी अन्य मशीन पर कहीं और भंडार में हैं।

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

+0

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

+0

@ गौरवसिन्हा किसी भी मामले में, यदि आपको 'गिट सबमिशन अपडेट' पर त्रुटि मिल रही है, तो ऐसा इसलिए है क्योंकि गिट रेपो गिट प्रतिबद्ध आईडी का पता नहीं लगा सकता है जो सबमिशन इंगित कर रहा है। चूंकि आप इसे "ताजा पेड़" बना रहे हैं, जैसे आप इसे डालते हैं, या तो यूआरएल गलत है, या आपने उस वचन को धक्का नहीं दिया है जो सबमिशन की ओर इशारा किया गया है। –

+0

ऐसा लगता है कि यह गलत यूआरएल हो सकता है, मुझे इसे आज़माएं, उंगलियों को पार कर दें .. –

1

आदेश अन्य खजाने में नए submodules पाने के लिए, मैं तुम्हें git submodule update चलाने के लिए शुरू करने से पहले एक बार git submodule init चलाने की आवश्यकता विश्वास करते हैं; यह .gitmodules से .git/config में नया सबमिशन पंजीकृत करेगा।

+0

मैंने गिट सबमिशन अपडेट कमांड चलाने से पहले गिट सबमिशन इनिट चलाया। यह दुर्भाग्य से मदद नहीं करता है। भ्रम से बचने के लिए मेरा प्रश्न अपडेट किया गया। –

13

मुझे सूचकांक में मौजूद सबमिड्यूल अपडेट करने के दौरान TortoiseGit का उपयोग करके यह त्रुटि भी प्राप्त हुई। यही है, वे .gitmodules में मौजूद हैं लेकिन रिपॉजिटरी में सही ढंग से जोड़े नहीं गए हैं।

समाधान .gitmodules में निर्दिष्ट पथों का उपयोग करके उन्हें मैन्युअल रूप से फिर से जोड़ना है। आप TortoiseGit यूआई का उपयोग करें या प्रत्येक मॉड्यूल के लिए कमांड लाइन पर इस चला सकते हैं ...

git submodule add <url> <path> 

Re-adding a git submodule

(मुझे पता है यह शायद मूल पोस्टर के लिए समाधान नहीं है, लेकिन उम्मीद है कि यह मदद करता है अन्य लोग इसे गुगल कर रहे हैं।)

+0

मुझे '- इस काम को करने के लिए मजबूर करें। –

संबंधित मुद्दे