Redo केवल एक फ़ाइल का मर्ज करता है


112

मैं एक बड़े मर्ज के बीच में हूं, और मैंने git mergetoolसभी संघर्षों को हल करने के लिए उपयोग किया है, लेकिन मैंने अभी तक प्रतिबद्ध नहीं किया है, क्योंकि मैं यह सुनिश्चित करना चाहता था कि मर्ज पहले ठीक था।

यह पता चला है कि मैंने एक फ़ाइल में संघर्षों को हल करते समय एक गलती की थी, और मैं git mergetoolउस फ़ाइल के साथ संघर्ष के समाधान को फिर से करना चाहूंगा । जैसा कि यह एक बड़ा मर्ज है, मैं अन्य सभी फाइलों पर मर्ज को फिर से लाने से बचना चाहूंगा, जैसा कि मैं समझता हूं कि मुझे इसके साथ करना होगा git merge --abort

मुझे पता है कि मैं फ़ाइल को मैन्युअल रूप से संपादित कर सकता हूं, लेकिन यह काफी थकाऊ होगा और git mergetoolऑपरेशन को फिर से करना बहुत आसान होगा । क्या यह संभव है?


जवाबों:


181

ऐसा लगता है कि मैं सिर्फ गलत जगह देख रहा था। समाधान काफी सरल निकला।

git checkout -m <file>

यह फ़ाइल को उसकी विवादित स्थिति में लौटाता है। मैं git mergetoolफिर मर्ज को फिर से चलाने के लिए चला सकता हूं ।


2
मेरे लिए इस तरह का काम किया। सूचकांक एक विलय की स्थिति में समाप्त हो गया, लेकिन मेरिजेट ने यह नहीं सोचा था कि कोई भी बकाया विलय थे। मैंने अभी vi का उपयोग करके मर्ज किया था, लेकिन यह वैसे भी अजीब था।
क्रिस क्लेलैंड

1
धन्यवाद! यह वास्तव में जरूरत है। वैसे, vi के साथ मैनुअल विलय हमेशा एक खुशी और पूरी तरह से संतोषजनक है। बाईं ओर शिफ्टिंग या दाईं ओर शिफ्टिंग ने मुझे कभी यह विश्वास नहीं दिलाया कि मर्ज उम्मीद के
मुताबिक

1
इस डुप्लिकेट प्रश्न के उत्तर में कुछ उपयोगी अतिरिक्त विवरण (उसी उत्तर के साथ) हैं ।
जोशुआ गोल्डबर्ग

-4

आप हमेशा फ़ाइलों को मैन्युअल रूप से संपादित कर सकते हैं।

यदि आप उपयोग कर रहे हैं git merge --no-commit, तो आपके पास बस एक तैयार कमिट (ऑटो और सेमी-ऑटो के बाद) मर्ज होगा।

आप अभी भी फ़ाइलों को सुरक्षित रूप से संपादित कर सकते हैं और केवल तब ही कर सकते हैं जब पूरी तरह से संतुष्ट हों।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.