2013-10-01 4 views
9

मैं एक पैच कि बाहर निम्नलिखित उत्पादन देता है जब मैं Git के साथ इसे लागू करने के लिए कर रहा हूँक्या करना है यदि गिट-एम विफल रहता है "इंडेक्स में मौजूद नहीं है"?

Checking patch old/filename... 
error: old/filename: does not exist in index 

पैच वर्ष/फ़ाइल नाम के भीतर वास्तव में नए/फ़ाइल नाम के लिए ले जाया जाता है की कोशिश की है, लेकिन यह मूल फ़ाइल पहले से ही याद आ रही है लगता है स्रोत पेड़ से।

तो इसके बारे में त्रुटि और कैसे हल/काम करने के बारे में त्रुटि है? क्या इसे सिर्फ अनदेखा किया जा सकता है (--reject या तो)?

उत्तर

3

पैच सही स्रोत पेड़ के खिलाफ नहीं बनाया गया था।

एक तरीका यह भी हो सकता है:

अपने मूल शाखा (एक आप पैच लागू करना चाहते हैं) मान लें करता है:

  1. 1a -> 1b -> 1c -> 1 दिन

यह शाखा तो क्लोन है, और नए प्रतिबद्ध बने होते हैं:

  1. 1a -> 1b -> 1c -> 1 दिन -> 1e

प्रतिबद्ध 1e शामिल पुराने/फ़ाइल नाम

अब आप दूसरी शाखा, नहीं मूल एक के आधार पर, पैच में काम करते हैं:

  1. 1a -> 1b -> 1c -> 1 दिन -> 1e -,> नई/फ़ाइल नाम

    अब अगर आप y 1f प्रतिबद्ध के लिए एक पैच बनाने के लिए, -> 1f

प्रतिबद्ध 1f शामिल नाम बदलने वर्ष/फ़ाइल नाम कहां इसे 1 डी प्रतिबद्ध करने के लिए लागू नहीं कर पाएंगे, क्योंकि 1e प्रतिबद्ध है, जहां इंडेक्स/रिपोजिटरी में पुराना/फ़ाइल नाम जोड़ा गया था।

+0

यदि आप गिट की फाइल अभी भी मौजूद है, तो आप दोबारा जांच कर सकते हैं। मैं अभी इस मुद्दे में भाग गया, और फ़ाइल गिट वास्तव में मेरे सह-कार्यकर्ता द्वारा स्थानांतरित किया गया था, और इसलिए इस मुद्दे पर शिकायत कर रही थी। गिट चेरी-पिक ऐसे मुद्दों के बारे में बेहतर है, और यह मेरे लिए बहुत अच्छा काम करता है (हालांकि आपको प्रतिबद्धता से यह प्रतिबद्ध करना होगा)। – user3613932

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