2012-02-12 17 views
8

क्या गिट रिबेस का उपयोग करके प्रतिबद्ध संदेश बदलना संभव है, लेकिन विलय विवादों को फिर से हल किए बिना?फिर से मर्ज विवादों को हल किए बिना गिट रीडवर्ड

मैं एक पुराने रेपो bowdlerize करने की जरूरत है और मैं वास्तविक कोड के किसी भी, बस संदेशों को बदलने के लिए नहीं करना चाहती।

मैं --preserve-merges कोशिश की है।

उत्तर

9

"पुन: उपयोग रिकॉर्ड की गई संकल्पों" कहा जाता है Git, या rerere की एक अल्पज्ञात सुविधा नहीं है।

आप इसे विश्व स्तर पर git config --global rerere.enabled 1 चलाकर सक्षम कर सकते हैं।

तो rerere सक्षम किया गया है, Git स्वचालित रूप से संघर्ष के संकल्प की बचत होगी, और बाद में अगर यह एक ही संघर्ष का सामना करना पड़ता उन प्रस्तावों का पुन: उपयोग होगा। इसका शुद्ध परिणाम है कि उपयोगकर्ता को इन पहले देखे गए संघर्षों को फिर से हल करने की आवश्यकता नहीं है।

सुविधा a post on git-scm.com में आगे समझाया गया है। अधिक जानकारी के लिए, help document for git rerere देखें।

+5

दुर्भाग्य से यह केवल तभी आपकी मदद करेगा यदि आपने इसे विलय करने के दौरान सक्षम किया था - अब तक यह बहुत देर हो चुकी है। गिट के स्रोत के विपरीत हिस्से में [रीग्रे-ट्रेन नामक एक स्क्रिप्ट] (https://github.com/gitster/git/blob/master/contrib/rerere-train.sh) है जो मौजूदा इतिहास के माध्यम से जाती है और पुन: प्रयास करती है मौजूदा विलय से संघर्ष संकल्प सीखें - यह मानते हुए कि यह काम करता है, जो इस मामले में आपकी मदद करेगा। – Cascabel

1

नोट: के बाद से contrib/rerere-train.sh स्क्रिप्ट फिर से प्रशिक्षित करने के लिए rerere माना जाता है (जैसा कि आप देख सकते हैं एक manual retraining here)

यकीन rerere अपने सभी मौजूदा रिबेस संकल्प को भूल जाता है बनाने के लिए, आप अब Git 2.14.x के एक अधिकारी का विकल्प होता है contrib/rerere-train के लिए /2.15 (क्यू 3 2017): --overwrite ध्वज।

Raman Gupta (rocketraman) द्वारा commit ad53bf7 (26 जुला 2017) देखें।
(commit aec68c3 में Junio C Hamano -- gitster -- द्वारा विलय, 11 अगस्त 2017)

contrib/rerere-train: वैकल्पिक रूप से मौजूदा प्रस्तावों

के ऊपर लिख उपयोगकर्ता एक --overwrite ध्वज का उपयोग कर मौजूदा प्रस्तावों अधिलेखित करने के लिए एक विकल्प प्रदान करें।

यह, इस्तेमाल किया जा सकता उदाहरण के लिए, उपयोगकर्ता जानता अगर वे पहले से ही एक संघर्ष के लिए उनके rerere कैश में एक प्रविष्टि है, लेकिन यह ड्रॉप करने और मर्ज के आधार पर पुन: प्रशिक्षित प्रतिबद्ध चाहते हैं कि (रों) rerere- के लिए पारित ट्रेन स्क्रिप्ट

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