2013-03-08 49 views
8

मैं VS2012 Git-प्लगइन के साथ कुछ परेशानी के बाद मेरे फ़ाइलों में इस है:GIT भ्रष्ट फ़ाइलें (<<<<<<<< HEAD)

using Microsoft.VisualStudio.TestTools.UnitTesting; 
<<<<<<< HEAD 
using NHibernate; 
======= 
>>>>>>> dd2c3d7dfe81074e7c5a73f8e4ca2584481a74f1 

namespace Controll.Hosting.Tests 
{ 
[TestClass] 
public class TestBase 
{ 
<<<<<<< HEAD 
    protected ISessionFactory SessionFactory; 

    [TestInitialize] 
    public void InitializeTestBase() 
    { 
      SessionFactory = NHibernateHelper.GetSessionFactoryForMockedData(); 
======= 
    [ClassInitialize] 
    public void InitializeTest() 
    { 
     Console.WriteLine("Settings NHibernateHelper.IsInTesting -> True"); 
     NHibernateHelper.IsInTesting = true; 
>>>>>>> dd2c3d7dfe81074e7c5a73f8e4ca2584481a74f1 
     } 
    } 
} 

कैसे मैं अपने फाइलों रीसेट कर सकते हैं?

+6

वे संघर्ष विलय कर रहे हैं। फ़ाइलें दूषित नहीं हैं। – vedarthk

+0

मैं देखता हूं, क्या मैं गिट को नए बदलावों के साथ सबकुछ ओवरराइट कर सकता हूं? – ErikTJ

+0

आपको अपने इच्छित डेटा को तय करना और रखना है। जीआईटी केवल संघर्षों को इंगित करेगा। नीचे दिए गए उत्तर के अनुसार उस कोड को संशोधित करें और फ़ाइल को सहेजें। – vedarthk

उत्तर

19

आप परेशानी लेकिन संघर्ष पर नहीं थे। ऐसा तब होता है जब फ़ाइलों को एक ही स्थान पर दो अलग-अलग व्यक्तियों द्वारा संशोधित किया जाता है (आप दोनों एक ही पंक्ति के अंदर चीजों को जोड़/हटा/संशोधित करते हैं)।

आप बस <<<<<<< HEAD और =======, या ======= और >>>>>>>, या दो के कुछ मिश्रण के बीच के बीच सब कुछ रखने के लिए निर्णय लेने से से, अपनी फ़ाइलों को मैन्युअल रूप से अपडेट कर सकते हैं। एक बार जब आप हल करें तो आपके सभी विवाद, आपको बस अपने परिवर्तन करने की आवश्यकता है।

git checkout -- . 

उपयोग करते समय भी तय कर सकते हैं, प्रत्येक फ़ाइल के लिए सभी फ़ाइलों के लिए एक फ़ाइल पर स्थानीय परिवर्तनों को निरस्त करने के लिए आपको

git checkout yourfile 

कर सकते हैं या,, आप अपने रखना चाहते हैं संस्करण या

git checkout --ours yourfile # Your version 
git checkout --theirs yourfile # Repository version 
+0

ठीक है, धन्यवाद। मैं इसे स्वीकार करूंगा, लेकिन क्या मैं अपने सभी स्थानीय परिवर्तनों को रखने के लिए चुना जा सकता हूं (मैं वास्तव में पुराने रिपो में वापस जा रहा हूं और कई फाइलें प्रभावित हैं)? – ErikTJ

+1

@ErikTJ आपको * सभी * फ़ाइलों पर कुछ करने का निर्णय नहीं लेना चाहिए। सबसे अच्छी बात यह है कि भले ही यह थोड़ा परेशान हो, फिर भी प्रत्येक फाइल को देखना और संघर्ष के रूप में क्या गिट बताता है। – alestanis

+0

@alestanis गिट के इस एबीसी को समझाने के लिए अपने मरीजों का अच्छा .. – adardesign

5

के साथ संस्करण या भंडार संस्करण पहले से ही आपके क्यू का सबसे अच्छा जवाब है। अभी भी आसान लुकअप के लिए:

उन संघर्ष मार्करों का एक स्पष्टीकरण >>>>> ... <<<<<this question पर पाया जा सकता है।

this Q पर विलय करने के बारे में अधिक जानकारी है।

और git help merge रूप में अच्छी तरह काफी स्पष्ट रूप से उपयोगी है:

संघर्ष

हल करने के लिए कैसे एक संघर्ष देखने के बाद, आपको दो बातें कर सकते हैं:

· विलय करने के लिए नहीं निर्णय लेते हैं। आपको केवल एकमात्र सफाई-अप इंडेक्स फ़ाइल को को रीडर्स 2 के लिए हेड प्रतिबद्ध करने के लिए रीसेट करना है। और 2 और 3 द्वारा किए गए पेड़ परिवर्तनों को साफ करने के लिए; इसके लिए git merge --abort का उपयोग किया जा सकता है।

· संघर्षों को हल करें। गिट कार्यक्षेत्र में संघर्ष को चिह्नित करेगा। फ़ाइलों को आकार में संपादित करें और git add उन्हें अनुक्रमणिका में संपादित करें। सौदे को सील करने के लिए git commit का उपयोग करें।

आप उपकरण की एक संख्या के साथ संघर्ष के माध्यम से काम कर सकते हैं:

· एक mergetool का प्रयोग करें। git mergetool एक ग्राफिकल mergetool लॉन्च करने के लिए जो आपको विलय के माध्यम से काम करेगा।

· diffs को देखें।git diff एक तीन-तरफा diff दिखाएगा, जिसमें HEAD और MERGE_HEAD दोनों संस्करणों के परिवर्तनों को हाइलाइट किया जाएगा।

· प्रत्येक शाखा से भिन्नता देखें। git log --merge -p <path> HEAD संस्करण और उसके बाद MERGE_HEAD संस्करण के लिए पहले diffs दिखाएगा।

· मूल पर देखें। git show :1:filename सामान्य पूर्वजों को दिखाता है, git show :2:filename HEAD संस्करण दिखाता है, और git show :3:filename MERGE_HEAD संस्करण दिखाता है।

0

Kdiff के साथ मेरे निर्माण को प्रबंधित करने के लिए गिट के लिए SourceTree का उपयोग करने से मुझे इन मुद्दों में से 99% वास्तव में कुशलतापूर्वक हल करने में मदद मिली है।

मैं नेट में अपनी एसओयू फ़ाइल से इन्हें हटाने की कोशिश कर रहा हूं। आमतौर पर, पुराने संस्करण के साथ एसओयू फ़ाइल को प्रतिस्थापित करने से यह हल हो जाता है।