मैं git add --interactive
चुनिंदा रूप से अपने सूचकांक में कुछ बदलाव जोड़ने के लिए उपयोग करने की कोशिश कर रहा हूं , लेकिन मुझे लगातार "आपका संपादित हंक लागू नहीं होता है। फिर से संपादित करें ..." संदेश। मुझे यह संदेश मिलता है, भले ही मैं ई विकल्प चुनूं, और तुरंत अपने संपादक को बचा / बंद कर दूं। दूसरे शब्दों में, हंक को संपादित किए बिना, पैच लागू नहीं होता है।
यहां सटीक उदाहरण मैं उपयोग कर रहा हूं (मैं एक छोटा डेमो डालने की कोशिश कर रहा हूं):
मूल फ़ाइल:
first change
second change off branch
third change off branch
second change
third change
fourth change
नई फ़ाइल:
Change supporting feature 1
first change
second change off branch
third change off branch
second change
third change
fourth change
bug fix 1
change supporting feature 1
मैं यह दिखाने की कोशिश कर रहा हूं git add --interactive
कि सूचकांक में "बग फिक्स 1" लाइन को जोड़ने के लिए कैसे उपयोग किया जाए। फ़ाइल पर इंटरैक्टिव ऐड चल रहा है, मैं पैच मोड चुनता हूं। यह मुझे प्रस्तुत करता है
diff --git a/newfile b/newfile
index 6d501a3..8b81ae9 100644
--- a/newfile
+++ b/newfile
@@ -1,6 +1,9 @@
+Change supporting feature 1
first change
second change off branch
third change off branch
second change
third change
fourth change
+bug fix 1
+change supporting feature 1
मैं पहले हंक लागू करने के लिए "नहीं" के बाद, विभाजन के साथ प्रतिक्रिया करता हूं। दूसरा हंक, मैं संपादित करने की कोशिश करता हूं। मैंने मूल रूप से नीचे की रेखा को हटाने की कोशिश की - जो काम नहीं किया। अकेले हंक को छोड़कर पूरी तरह से काम नहीं करता है, और मैं यह पता नहीं लगा सकता कि क्यों।
-
लाइनों की शुरुआत में नहीं जोड़ रहे हैं जिनके साथ शुरू करने के लिए फाइल मौजूद नहीं है; यह एक अंतर है और यह उन लाइनों को नहीं हटा सकता है जो पहले से ही नहीं हैं। तो अगर अंतर में एक रेखा के साथ शुरू होता है+
और आप इसे बदलने के लिए-
WTF चला जाता है? क्योंकि अब हटाने के लिए चिह्नित लाइन शुरू नहीं होती है (इसके बजाय लाइन को इसके लिए चिह्नित किया गया था, और जब हटाने के लिए चिह्नित लाइन को हटाने के लिए चिह्नित किया जाता है तो वह लाइन को हटा नहीं सकता है जो पहले से फ़ाइल में नहीं है) ।