2017-02-22 12 views
6

मैं एक पैच लागू करने की कोशिश कर रहा हूं जिसमें git apply के साथ बाइनरी फ़ाइलें शामिल हैं लेकिन केवल फाइलें शामिल हैं। मैंने git apply failing.patch -v चलाने की कोशिश की और यह कुछ प्रिंट करता है जैसे:गिट लागू स्किप पैच

स्किप किए गए पैच 'file.txt'।
पैच फ़ाइल जांचना .bin ...
एप्लाइड पैच file.bin साफ़ रूप से।

मैं कैसे पता लगा सकता हूं कि छोड़ने का कारण क्या है? चूंकि वर्तमान संदेश बहुत प्रबुद्ध नहीं है।

+0

एक पैच आमतौर पर छोड़ा जाता है जब इसमें किए गए परिवर्तन पहले से ही लागू किए गए थे। इसके लिए कई संभावित कारण हैं: एक विलय, एक चेरी-पिक, मैन्युअल रूप से संचालित या अन्य पैच आदि का उपयोग करते हुए परिवर्तन – axiac

+0

मैंने इसके बारे में भी सोचा लेकिन यह मामला नहीं था। –

उत्तर

7

मैं जो

इनपुट लाइन 5

जो मुझे याद दिलाया कि मैं रूट निर्देशिका में नहीं था पर पैच करने के लिए फ़ाइल नहीं मिल सकता है मुद्रित patch -p1 < failing.patch चलाकर समस्या का पता चला।

मुझे समझ में नहीं आ रहा है कि क्यों no one had asked this before और वर्बोज़ संदेश क्यों वर्बोज़ नहीं है।

इसके अलावा, official documentation भी छोड़ने और संभावित कारणों का उल्लेख नहीं करता है।

1

परियोजनाओं में पोर्ट परिवर्तनों का प्रयास करते समय इस समस्या को पीड़ित करते हुए। git apply पैच फ़ाइल पथ पर किसी भी निर्देशिका नाम को अनदेखा कर रहा है, यह भी लागू करने से इंकार कर देता है अगर इंडेक्स लाइन लक्ष्य भंडार में फ़ाइल हैश से मेल नहीं खाती है।

git apply --verbose --no-index --directory {subdir} {patch-file} 
0

एक ही मुद्दा मिल गया: मैं बेहतर सफलता इन विकल्पों (--no-index undocumented किया जा रहा है जिनमें से) का उपयोग किया था। मेरे मामले में त्रुटि का स्रोत पैच लक्ष्य की कुछ मूल निर्देशिकाओं में .git फ़ोल्डर था। समाधान उस मूल निर्देशिका के बाहर पैच लक्ष्य को स्थानांतरित करना था।

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