2010-06-28 3 views
6

मैं सप्ताहांत में घर पर कुछ काम कर रहा था और मेरे कार्यालय कंप्यूटर (एक वीपीएन के माध्यम से जुड़े) में कोड परिवर्तनों को मर्ज करने के लिए गिट का उपयोग किया और कुछ बहुत बदसूरत विलय समस्याओं को पाया।गिट विलय: लिनक्स और विंडोज दोनों पर स्रोत को संशोधित करने के बाद मुझे बहुत सारे विलय संघर्ष क्यों मिलते हैं?

सभी मर्ज पहले बहुत साफ किया जाना चाहिए था के रूप में सब कुछ शुक्रवार को कार्यालय में प्रतिबद्ध है और मैं केवल शनिवार और रविवार को मेरे घर के कंप्यूटर में परिवर्तन किए। लेकिन जब मैंने अपने ऑफिस कंप्यूटर में बदलाव खींचा तो मैं विलय विवादों के एक टन के साथ समाप्त हुआ।

मैं मर्ज संघर्ष साफ है, लेकिन फिर मैंने पाया कि फ़ाइलें (क्या मैं किसी भी फाइल है कि मैं सप्ताहांत में बदल बता सकते हैं से) के कई <<<<<<< HEAD" and ">>>>>>> D1/master फ़ाइलों भर था। उदाहरण के लिए:

diff --git a/web/Web.Controller/Helpers/FormsAuthentication.cs b/web/Web.Controller/Helpers/FormsAuthentication.cs 
index 8571f53..4a9c9fc 100644 
-- a/web/Web.Controller/Helpers/FormsAuthentication.cs 
++ b/web/Web.Controller/Helpers/FormsAuthentication.cs 
@@ -10,7 +10,10 @@ 
    /// </summary> 
    public class FormsAuthenticationUtility : IAuthenticationUtility 
    { 
<<<<<<< HEAD 

======= 
>>>>>>> D1/master 
     #region IAuthentication Members 

     /// <summary> 

मैं अपने घर के कंप्यूटर से नकल स्रोत कोड के साथ तुलना करके kdiff का उपयोग कर कोड को ठीक करने में सक्षम था, लेकिन यह सिर्फ पूरी तरह से में गड़बड़ लगती है।

कोई भी विचार क्या हो रहा है?

+0

क्या आप उस शाखा का ग्राफ दिखा सकते हैं जिसे आपने विलय किया था और जिस शाखा को आपने विलय किया था, जैसे 'गिट लॉग - ग्राफ मास्टर होम/मास्टर 'या कम से कम बिल्कुल दो शाखाओं के बीच संबंध क्या है जो आपने विलय किया है? –

+0

सबसे पहले मैंने अपने कार्यालय कंप्यूटर से रेपो को अपने घर के कंप्यूटर पर क्लोन किया, घरेलू कंप्यूटर (शाखा सहित) में बदलाव किए, घर की मरम्मत के लिए होम रिपो पर सबकुछ किया और विलय कर दिया। तब मैंने घर के रेपो से कार्यालय रेपो में बदलावों को खींच लिया और कार्यालय मास्टर शाखा में विलय करने की कोशिश की। – Dan

+0

क्या आपने यह जांच की है कि क्या आपके घर के कंप्यूटर में कोर के समान कोर.autocrlf सेटिंग है? यदि नहीं, तो कृपया मेरे उत्तर में दिए गए लिंक पर एक नज़र डालें, जिसने मुझे (शायद) इसी तरह के मामले में मदद की है –

उत्तर

4

मैं, एक ही समस्या है जब Windows फ़ाइलों जहाँ मेरे लिनक्स रेपो में विलय का सामना करना पड़ा, ताकि एक CRLF मुद्दा था। मैं अंततः this answer की मदद से इसे ठीक कर सकता हूं। आईआईआरसी को विलय से पहले किया जाना था, लेकिन यह थोड़ी देर हो गया है और ईमानदारी से मैं इसे लिखना भूल गया ...

+1

लिंक के लिए धन्यवाद। मैंने अपने ऑफिस रेपो पर कमांड चलाए और ठीक करने के लिए कोई फाइल नहीं मिली। लेकिन जब मैंने इसे अपने घर के रेपो पर चलाया तो उसे कई फाइलें मिलीं जहां उसने सीआरएलएफ को बदल दिया। अगली बार विलय करने से पहले मैं इसे ध्यान में रखूंगा। – Dan

+0

@Dan भी एक निरंतर autocrlf सेटिंग की जांच करना याद रखें –

1

मैं न्यू लाइन अपने पात्रों के विभिन्न उपचार के कारण इस तरह एक समस्या आ जब विंडोज के लिए * निक्स और पीछे से जा रहा था। गिट उन मतभेदों पर उठा रहा है और किसी भी कारण से विलय करने में विफल रहा है।

शायद --ignore-space-at-eol कोशिश?

संपादित करें: मर्ज

व्हाइट अंतरिक्ष वास्तव में फर्क पड़ता है। इससे आपके सटीक मामले में कोई फर्क नहीं पड़ता है, लेकिन ऐसे संदर्भ हैं जहां इससे कोई फर्क पड़ सकता है। This question यह पता लगाना प्रतीत होता है कि संघर्षों को हल करने के लिए क्या किया जाना चाहिए उससे कहीं ज्यादा बेहतर है।

+0

ऐसा कुछ हो सकता है क्योंकि विलय विवादों में से कई यूनिक्स न्यूलाइन स्वरूपण के कारण थे, हालांकि मैं केवल विंडोज़ का उपयोग कर रहा हूं कंप्यूटर। – Dan

+0

--ignore-space-at-eol विकल्प केवल गिट diff के लिए है, यह विलय करते समय मेरी मदद कैसे करता है? – Dan

+0

शायद गलत तरीके से, मैंने सोचा कि गिट विलय कुछ काम के लिए स्वचालित रूप से गिट diff का उपयोग किया जाता है। अधिक विचारों के लिए संपादन देखें। – MikeD

1

यह CRLF समस्या की तरह लगता है, जबकि विलय: यह हाल ही में एक चर्चा here फूट पड़ा। हो सकता है कि आप इस समस्या को ठीक से उत्पन्न करने के लिए कुछ फ़ाइलों के साथ एक कम केस बनाने का प्रयास भी कर सकते हैं।

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