अस्थिर फ़ाइलों के चेकआउट को पूर्ववत कर सकते हैं


164

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


नहीं, हम नहीं कर सकते हैं, लेकिन यदि आप ग्रहण का उपयोग कर रहे हैं तो हम टीम की जांच कर सकते हैं -> स्थानीय इतिहास
यूएसएम

जवाबों:


106

मेरा मानना ​​है कि यदि कोई फ़ाइल संशोधित है, लेकिन अभी तक नहीं जोड़ा गया है (मंचन), यह विशुद्ध रूप से "निजी" है।
यदि इसे इंडेक्स या हेड संस्करण के साथ अधिलेखित किया जाता है, तो जीआईटी द्वारा इसे बहाल नहीं किया जा सकता है (जब तक कि आपके पास अपने वर्तमान काम की प्रति नहीं है)। "

एक "निजी" सामग्री केवल आपकी वर्तमान निर्देशिका में दिखाई देती है, लेकिन Git में किसी भी तरह से पंजीकृत नहीं है।


5
मैं समझता हूं कि 'निजी' फ़ाइल में परिवर्तन git द्वारा पूर्ववत नहीं किया जा सकता है। हालाँकि, अगर फ़ाइल को git द्वारा संशोधित किया गया था (उदाहरण के माध्यम से git checkout --), तो मुझे उम्मीद है कि यह उस ऑपरेशन को पूर्ववत करने में सक्षम होगा, शायद इसके माध्यम से reflog। क्या वह गलत अपेक्षा है?
साइप्रियन टोमोयागॉव

2
@CiprianTomoiaga रिफ्लेग पिछले अप्रकाशित आवागमन के लिए है। यदि आप जिसे पुनर्स्थापित करना चाहते हैं वह प्रतिबद्ध (या मंचन) नहीं किया गया था, तो रिफ्लॉग आपकी मदद नहीं करेगा।
वॉन सी सी

3
किसी भी तरह की निजी सामग्री के लिए @CiprianTomoiaga (अभी तक जोड़ा नहीं गया), आप केवल अपने संपादक या आईडीई सुविधा पर निर्भर होंगे। : ग्रहण के लिए उदाहरण help.eclipse.org/neon/...
VonC

5
वाह! Unbelieable। मुझे एक फ़ाइल देखने की ज़रूरत थी, इसलिए मुझे टाइप करना था, git checkout folders/subfolders/fileलेकिन folderमेरे सारे काम खत्म करने के बाद दुर्घटना में प्रवेश कर गया । / मेरे कीबोर्ड पर प्रवेश से 1 सेमी है और मैं अलग-अलग कीबोर्ड लेआउट वाली मशीनों के बीच स्विच करता हूं इसलिए अक्सर मेरी उंगलियों के 10-15 मिनट नए पदों पर आ जाते हैं। 2018 में विश्वास करना मुश्किल है कि गिट फाइलों को कचरा कर देता है, भले ही यह गीट बुक में कहे कि जीआईटी काम नहीं करने के तरीके से बाहर है।
gman

1
@gman क्या "IDE" द्वारा दिए गए "स्थानीय इतिहास" के बारे में नीचे दिए गए जवाब से आपको अपना काम ठीक करने में मदद मिलती है?
VonC

174

यदि आप एक "पेशेवर" आईडीई अवसरों का उपयोग कर रहे हैं, तो आप स्थानीय इतिहास से फ़ाइलों को पुनर्स्थापित कर सकते हैं। उदाहरण के लिए Rubymine में आप फाइलों को राइट क्लिक कर सकते हैं और git परिवर्तनों से स्वतंत्र परिवर्तनों का इतिहास देख सकते हैं, मुझे कुछ समय बचा है ^ ^


37
FYI करें यह सुविधा "प्रोफेशनल" IDE: Pycharm, IDEA, PHPStorm, Webstorm के पूरे JetBrains परिवार में उपलब्ध है। आज मेरे बकन को बचा लिया। धन्यवाद, क्रिस्टोफ़!
बेन रॉबर्ट्स

6
मुझे आपको धन्यवाद देना होगा। मैं वेबस्टॉर्म का उपयोग करता हूं, और पूरी तरह से उस सुविधा के बारे में भूल गया, भले ही मैं इसे अक्सर उपयोग करता हूं। मैं सिर्फ कोड के नुकसान को पकड़ रहा था, मैंने इसके बारे में नहीं सोचा था!
टायसन फाल्प

8
ग्रहण में आप फाइल पर राइट क्लिक कर सकते हैं -> तुलना -> स्थानीय इतिहास
मार्गेज

5
उत्तम। Sublime2 पूर्ववत भी डिस्क पर आकस्मिक गिट चेकआउट द्वारा किए गए परिवर्तनों को वापस ले लिया।
शुक

8
अगर किसी को यह पता चलता है कि XCode में कुछ काम नष्ट हो गया है, तो AutoSave इतिहास प्राप्त करने का एक तरीका है। XCode में AutoSave इतिहास देखने के लिए मेनू प्रविष्टि नहीं है, लेकिन यह इसे संग्रहीत करता है। यदि आप TextEdit में विचाराधीन फ़ाइलों को खोलते हैं, तो आप फ़ाइल> रिवर्ट के तहत ऑटोवेव इतिहास के माध्यम से वापस लौट सकते हैं और देख सकते हैं।
१६

66

यदि आप Sublime Text जैसे संपादक में काम कर रहे हैं, और आपके पास अभी भी खुला प्रश्न है, तो आप ctrl + z दबा सकते हैं, और यह उस स्थिति में वापस आ जाएगा, जब यह git checkout से पहले था।


9
यह उत्तर मेरा दिन बचा है। आपका बहुत बहुत धन्यवाद!
फय्याज

मैं अभी इस दुर्घटना से ठीक हो गया, और एक नया उत्तर पोस्ट करने वाला था। ऐसा लगता है कि उदात्त अपने फ़ाइल संशोधन इतिहास में फ़ाइल स्थिति को बदलते हुए गिट को पकड़ लेता है।
तिमाह

इलिप्स में मेरे लिए काम किया।
विसंगति

4
विज़ुअल स्टूडियो कोड के लिए भी काम किया गया
11

44

दुर्भाग्य से आपके परिवर्तन खो गए हैं। आपके निजी संशोधन केवल ओवरराइट किए गए हैं। जब तक आपने git stashचेकआउट करने से पहले ...

इसे उज्जवल पक्ष से लें: अब आप चीजों को बेहतर तरीके से लागू कर सकते हैं;)


26

अपने आईडीई में स्थानीय इतिहास की जाँच करें।


बस मेरे बदलावों को न करने की गलती की और एक चेकआउट के लिए मजबूर किया। मैंने एंड्रॉइड स्टूडियो में अपना स्थानीय इतिहास देखा (देखें -> हाल के बदलाव) और मेरे द्वारा किए गए अंतिम परिवर्तनों को वापस ले लिया। यहाँ अधिक जानकारी jetbrains.com/help/idea/2016.3/…
emen

यह रूबाइन में पूरी तरह से काम करता है, आपके परिवर्तनों को मिटा देने की कार्रवाई को "बाहरी परिवर्तन" के रूप में संदर्भित किया जाएगा। इस मार्सिन के लिए बहुत बहुत धन्यवाद, इसने मुझे एक घंटे का खोया हुआ काम बचाया!
एंड्रयूसपॉव

25

OS X पर विकास ? Xcode का उपयोग करना ? आप भाग्य में होने की संभावना है!

जैसा कि qungu की एक टिप्पणी में वर्णित है , OS X फाइलों का एक स्वतः सहेजा गया संस्करण इतिहास रखता है, भले ही आप टाइम मशीन का उपयोग न कर रहे हों

इसलिए, यदि आप एक लापरवाह के साथ अपने unstaged स्थानीय परिवर्तन उड़ा दिया है git checkout ., आपके द्वारा कर सकते हैं शायद अपने सभी काम ठीक हो।

अगर किसी को यह पता चलता है कि XCode में कुछ काम नष्ट हो गया है, तो AutoSave इतिहास प्राप्त करने का एक तरीका है। XCode में AutoSave इतिहास देखने के लिए मेनू प्रविष्टि नहीं है, लेकिन यह इसे संग्रहीत करता है। यदि आप TextEdit में विचाराधीन फ़ाइलों को खोलते हैं, तो आप फ़ाइल> रिवर्ट के तहत ऑटोवेव इतिहास के माध्यम से पुन: देख सकते हैं और देख सकते हैं।

जो कमाल है, और कल मेरे लिए काम का एक दिन है।


आप पूछ सकते हैं, "जीआईटी कमांड-लाइन यूआई क्यों नहीं करता है, सॉफ्टवेयर इंजीनियरिंग के लिए इस्तेमाल किया जाने वाला प्रमुख वीसीएस2016 2017 20182019, कम से कम फ़ाइलों को वापस उड़ाने से पहले उन्हें हटा दें? जैसे, आप जानते हैं, पिछले तीन दशकों के लिए अच्छी तरह से लिखे गए सॉफ्टवेयर टूल। "

या शायद आप पूछते हैं, "TextEdit में यह बेहद भयानक फ़ाइल इतिहास सुविधा क्यों सुलभ है लेकिन Xcode नहीं है जहां मैं वास्तव में हूं?"

... और मुझे लगता है कि दोनों, हमारे उद्योग के बारे में आपको काफी कुछ बताएंगे। या हो सकता है कि आप जाकर उन उपकरणों को ठीक कर लें। जो सुपर होगा।


2
मैं पुष्टि कर सकता हूं कि यह काम करता है। यह सिर्फ मुझे काम के घंटे बचा लिया!
ब्रूनो रोचा

मेरे लिए काम नहीं किया क्योंकि संबंधित फाइल Modelदुर्भाग्यपूर्ण थी
ब्राह्मण

@ ब्राहिमम मॉडल?
बेंजोय

1
यह बस मुझे एक टन दिल का दर्द बचा लिया। बहुत बहुत धन्यवाद।
वर्गाकार में

1
बहुत दिलचस्प: मैंने अपने स्रोत फ़ाइल पर राइट-क्लिक किया और "ओपन विथ" मेनू को देखा। दोनों TextEdit 1.14 और TextEdit 1.6 विकल्प के रूप में थे। केवल TextEdit 1.14 में पुराने संशोधनों को वापस करने का विकल्प था। यूआई बहुत अच्छा था, टाइममेकिन की तरह।
बगलाफ

7

VSCODE में ctrl + z (undo) ने मेरे लिए काम किया

मैंने इसके git checkout .बजाय किया git add .और मेरी सभी फ़ाइल परिवर्तन खो गए थे।

लेकिन अब command + zमेरे मैक में उपयोग करते हुए, परिवर्तनों को पुनर्प्राप्त किया और मेरे लिए काम का एक स्वर बचा।


क्या कोई और रास्ता है?
अब्दुल मनन

3

यदि आपने पहले कभी बदलाव किए हैं (उदाहरण के लिए, रिबासिंग से पहले), तो इससे मदद मिलेगी

Git में गिरा हुआ निशान कैसे ठीक करें?

यहां तक ​​कि अगर आप पहले से ही परिवर्तनों को 'स्टेश पॉप' कर चुके हैं।


2

इस तरह की स्थिति के लिए एक प्रभावी उद्धारकर्ता टाइम मशीन (ओएस एक्स) या इसी तरह का समय-आधारित बैकअप सिस्टम है। यह मुझे एक बार बचाया है क्योंकि मैं वापस जा सकता हूं और बस एक फ़ाइल को पुनर्स्थापित कर सकता हूं।


1
प्रिय downvoter - क्या आप बता सकते हैं कि मैं इस उत्तर को कैसे सुधार सकता हूं?
sscirrus

1

मेरे पास बस इतना ही हुआ था, मैंने काम के घंटे वाले एक पूरे फ़ोल्डर की जाँच की! सौभाग्य से मुझे पता चला कि मेरा आईडीई नेटबीन्स प्रत्येक फ़ाइल का इतिहास रखता है, जिसने मुझे 99% सामान को पुन: व्यवस्थित करने की अनुमति दी, हालांकि मुझे मैन्युअल रूप से कुछ चीजों को ठीक करने की आवश्यकता थी।


0

मैं आमतौर पर ड्रॉपबॉक्स फ़ोल्डर में अपने सभी काम करता हूं। यह मुझे सुनिश्चित करता है कि मेरे पास मेरे स्थानीय मशीन और जीथब के बाहर वर्तमान फ़ोल्डर उपलब्ध होगा। मुझे लगता है कि git के अलावा "संस्करण नियंत्रण" की गारंटी देना मेरा दूसरा कदम है। अपनी फ़ाइल को अपनी ड्रॉपबॉक्स फ़ाइलों के पिछले संस्करणों में वापस लाने के लिए आप इसका अनुसरण कर सकते हैं

उम्मीद है की यह मदद करेगा।


0

तकनीकी रूप से हाँ। लेकिन केवल कुछ उदाहरणों पर। यदि उदाहरण के लिए आपके पास कोड पेज है और आपने गिट चेकआउट मारा है, और आपको पता चलता है कि आपने गलती से गलत पेज या कुछ और चेक किया है। पृष्ठ पर जाएं और पूर्ववत करें पर क्लिक करें। (मेरे लिए, कमांड + z), और यह ठीक उसी जगह पर वापस जाएगा जहां आप पुराने पुराने गिट चेकआउट को हिट करने से पहले थे।

यदि आपका पृष्ठ बंद हो गया है, तो यह काम नहीं करेगा, और फिर आपने गिट चेकआउट मारा। यह केवल तभी काम करता है जब वास्तविक कोड पेज खुला हो


0

आप एक टर्मिनल / के साथ काम करते हैं शीघ्र खुला cmd, और किसी भी Git आदेशों unstaged परिवर्तन (पता चला है | इस्तेमाल किया diff, add -p, checkout -p, आदि), और बंद नहीं किया है टर्मिनल / के बाद से शीघ्र cmd, आप unstaged परिवर्तन मिलेंगे यदि आप उन उपर्युक्त git कमांड को चलाते हैं, जहां आप स्क्रॉल करते हैं, तब भी उपलब्ध हैं।


0

Dude,

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


-1

हो सकता है कि आपके परिवर्तन नष्ट न हों। "Git reflog" की जाँच करें

मैं नीचे दिए गए लेख को उद्धृत करता हूं:

"मूल रूप से हर कार्य जिसे आप Git के अंदर करते हैं जहां डेटा संग्रहीत किया जाता है, आप इसे रिफ्लॉग के अंदर पा सकते हैं। Git वास्तव में कठिन प्रयास करता है कि आप अपना डेटा न खोएं, इसलिए यदि किसी कारण से आपको लगता है कि आपके पास संभावना है, तो आप इसे खोद सकते हैं git reflog का उपयोग करके "

विवरण देखें:

http://gitready.com/intermediate/2009/02/09/reflog-your-safety-net.html


3
अपनी उम्मीदों पर खरा न उतरें - केवल तभी सहायता प्राप्त करें जब आप सार्थक तरीके से जीआईटी के साथ बातचीत कर रहे हों। बस एक फ़ाइल का संपादन, फिर इसे एक चेक चेकआउट के माध्यम से उड़ाने? git के पास कभी मौका नहीं था।
बॉब गिलमोर

1
मेरे से +1 - git reflogयहां पर ध्यान देने योग्य बात समझें , मुझे यह उत्तर तब मिला जब मैं इसे पूर्ववत करने के लिए खोज रहा था git checkout HEAD .- मुझे टाइप करने का मतलब था git reset HEAD .- मैंने सिर्फ 'git रीसेट --soft HEAD ~ 1' किया था और मुझे पता नहीं था इसके बारे में git reflogमैं जो काम कर पाया था उसे वापस पाने में सक्षम था :)
रसेल इंग्लैंड

1
दुर्भाग्य से git चेकआउट <revision> और git चेकआउट <path> दो पूरी तरह से अलग और असंबंधित कमांड हैं। पूर्व आपके स्थानीय परिवर्तनों को रखता है, बाद वाला नहीं करता है।
लेक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.