क्या गिट रीरे को सक्षम करने के लिए कोई डाउनसाइड है?


107

मैंने git के रीरे फीचर के बारे में विभिन्न बातें पढ़ी हैं, और मैं इसे सक्षम करने पर विचार कर रहा हूं। लेकिन मैंने किसी को भी किसी भी संभावित समस्याओं का उल्लेख नहीं देखा है जो इसका उपयोग करते समय उत्पन्न हो सकती हैं। मुझे लगता है कि एक नकारात्मक पहलू है, या यह संभवत: डिफ़ॉल्ट रूप से सक्षम होगा। तो क्या रेअर को सक्षम करने के लिए कोई नकारात्मक पहलू है? क्या संभावित समस्याएं हो सकती हैं जो अन्यथा उत्पन्न नहीं होंगी?


जब स्वचालित रीयर को सक्षम किया जाता है और यह पिछले रिज़ॉल्यूशन को लागू करता है, तो क्या यह एक संदेश प्रदर्शित करता है? यदि हां, तो यह कैसा दिखता है? TIA!
joeytwiddle

1
@joeytwield, इस लेख के अनुसार , यह फॉर्म का होगा,Resolved 'index.html' using previous resolution.
sampablokuper

जवाबों:


69

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

git rerere forget <pathspec>

यह उन संघर्ष प्रस्तावों को हल करता है जो वर्तमान संघर्ष में दर्ज किए गए हैं <pathspec>

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

लेकिन अगर आप ऐसा नहीं सोचते हैं, तो आप आसानी से उस गलत मर्ज को अपने इतिहास में डाल सकते हैं।


13
यही कारण है कि rerereअभी भी फ़ाइलों को अनमैरिड के रूप में चिह्नित संघर्षों के साथ छोड़ देता है, ताकि आपको कमिट करने से पहले उन्हें मैन्युअल रूप से जोड़ना (निरीक्षण / परीक्षण करने के बाद उम्मीद है)। आप हमेशा git checkout -m <path>मूल विवादित संस्करण की जांच करने के लिए उपयोग कर सकते हैं और यदि आपको करना है तो संकल्प को फिर से करें।
Cascabel

1
यह समझ में आता है! लगता है जैसे आपको एक नया उपनाम चाहिए।
कास्कैबेल

5
मुझे लगता है कि यह मुख्य मुद्दा है। रीरे को सक्षम करने से त्रुटियों में अप्रत्याशित रूप से चुपके के लिए एक और तरीका जुड़ जाता है। एक मर्ज जिसे आप गर्भपात करते हैं (या इसे इतिहास से हटाकर पूर्ववत करें) फिर भी आपको बाद में परेशान करने के लिए वापस आ सकता है। मूल रूप से, यह एक दूसरा इतिहास तंत्र पेश करता है जो वास्तविक इतिहास ग्राफ में ऑर्थोगोनल है।
रायन सी। थॉम्पसन 23

3
@RyanThompson मर्ज किए गए मर्ज को प्रभावित नहीं करते हैं। (मैं अक्सर चाहता था कि मैंने कभी-कभी एक मर्ज को खत्म कर दिया है क्योंकि मैंने इसे गलत तरीके से सेट किया है, फिर जब मैंने इसे सही तरीके से सेट किया है, तो सटीक समान प्रस्तावों को करने की आवश्यकता है।) इतिहास से एक मर्ज को हटाने के लिए, आप कभी क्यों करेंगे। वो करें?
मार्नैन लाइबो-कोसर

40

जैसा कि जेसी हैमनो ने अपने लेख " फन विथ रेयर " में उल्लेख किया है

  • रीरे को याद है कि आपने किस तरह से विवादित क्षेत्रों को हल करने के लिए चुना था;
  • रीरे को यह भी याद है कि आप किस तरह से संघर्षपूर्ण क्षेत्रों के बाहर शब्दार्थ परिवर्तनों को समायोजित करने के लिए छूते थे;
  • रीरेयर पिछले रिज़ॉल्यूशन का फिर से उपयोग कर सकता है, भले ही आप पहले से हल किए गए की तुलना में अलग-अलग सामग्रियों के साथ दो शाखाओं का विलय कर रहे थे

यहां तक ​​कि जो लोग लंबे समय से रेयर का उपयोग कर रहे थे, वे अक्सर अंतिम बिंदु को नोटिस करने में विफल होते हैं।

इसलिए यदि आप rerereबहुत अधिक सामग्री को सक्रिय करते हैं, तो आप अंतिम बिंदु के कारण आश्चर्यजनक या भ्रमित विलय प्रस्ताव को समाप्त कर सकते हैं।


15
परस्पर विरोधी हूक अभी भी मेल खाना है; झूठी सकारात्मक देने के लिए यह काफी मुश्किल है।
कास्कैबेल

3

मुझे विश्व स्तर पर सक्षम बनाया गया है। मैंने वास्तव में किसी भी समस्या पर ध्यान नहीं दिया है, और यह आमतौर पर मेरे जीवन को आसान बनाता है।


4
मुझे भी। 2 साल के उपयोग में कोई समस्या नहीं है।
एंड्री टारनटोसव

3

मैंने चेरी ने एक कमिट (gitk में) उठाया जिसमें केवल एक बाइनरी फ़ाइल थी। चेरीपिक संघर्ष के कारण विफल हो गया (जो इसके बारे में बात करना स्वाभाविक है) और मैंने चेरी को चुनने के लिए संघर्ष को हल किया। मैं बाद में आश्चर्यचकित था कि एक अन्य विद्रोही शाखा में पाया गया कि मेरे डीएल ने व्यवहार नहीं किया - केवल यह पता लगाने के लिए कि उन्हें स्वत: संघर्ष के संकल्प के रूप में विद्रोह में नहीं ले जाया गया था। तो यह एकमात्र ऐसा मामला है जो मुझे मिला (रेयर सक्षम होने के बाद) काउंटरिंटिवेटिव (हालांकि मुझे यकीन है कि पूरी तरह से सुसंगत) व्यवहार में है।


1
इलाज:git rerere forget path/to/compiled/bin.dll
Mr_and_Mrs_D

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