मैं अपनी स्थानीय फ़ाइल को अनदेखा करने के लिए और अपनी दूरस्थ शाखा से किसी को विलय करने और संघर्ष करने की कोशिश किए बिना कैसे ले सकता हूं?
मैं अपनी स्थानीय फ़ाइल को अनदेखा करने के लिए और अपनी दूरस्थ शाखा से किसी को विलय करने और संघर्ष करने की कोशिश किए बिना कैसे ले सकता हूं?
जवाबों:
यह सबसे सुरक्षित उपाय है:
git stash
अब आप संघर्ष के डर के बिना जो चाहें कर सकते हैं।
उदाहरण के लिए:
git checkout origin/master
यदि आप मास्टर शाखा में दूरस्थ परिवर्तन शामिल करना चाहते हैं, तो आप कर सकते हैं:
git reset --hard origin/master
यह आपको "मूल / मास्टर" को इंगित करने के लिए "मास्टर" शाखा देगा।
git stash; git fetch origin; git reset --hard origin/master
git stash? git stash listखाली है।
मैं इस प्रश्न को इस रूप में समझता हूं: आप पूरी तरह से एक फ़ाइल (या चयन) की सामग्री को अपस्ट्रीम से बदलना चाहते हैं। आप सीधे सूचकांक को प्रभावित नहीं करना चाहते हैं (ताकि आप हमेशा की तरह ऐड + कमिट से गुजरें)।
बस करो
git checkout remote/branch -- a/file b/another/file
यदि आप व्यापक उपप्रकार के लिए ऐसा करना चाहते हैं और इसके बजाय सीधे सूचकांक के उपयोग को प्रभावित करना चाहते हैं
git read-tree remote/branch:subdir/
तब आप (वैकल्पिक रूप से) अपनी कार्य प्रतिलिपि को अपडेट करके कर सकते हैं
git checkout-index -u --force
मेरी समझ यह है कि, उदाहरण के लिए, आपने गलत तरीके से एक फ़ाइल को सहेजा है जिसे आपने केवल परीक्षण उद्देश्यों के लिए अद्यतन किया था। फिर, जब आप "गिट स्थिति" चलाते हैं, तो फ़ाइल "संशोधित" के रूप में दिखाई देती है और आप कुछ बुरे शब्द कहते हैं। आप बस पुराने संस्करण को वापस चाहते हैं और सामान्य रूप से काम करना जारी रखते हैं।
उस परिदृश्य में आप केवल निम्न आदेश चला सकते हैं:
git checkout -- path/filename
विकल्प के साथ संयुक्त -sया --strategyविकल्प का उपयोग करें -X। अपने विशिष्ट प्रश्न में, आप सभी दूरस्थ फ़ाइलों को रखना चाहते हैं और उसी नाम की स्थानीय फ़ाइलों को बदलना चाहते हैं।
दूरस्थ संस्करण के साथ विरोधाभासों को बदलें
git merge -s recursive -Xtheirs upstream/master
सभी परस्पर विरोधी फ़ाइलों के दूरस्थ रेपो संस्करण का उपयोग करेगा।
स्थानीय संस्करण के साथ विरोधाभासों को बदलें
git merge -s recursive -Xours upstream/master
सभी परस्पर विरोधी फ़ाइलों के स्थानीय रेपो संस्करण का उपयोग करेगा।
git merge -s their