सवाल गिट में हालिया कामों को पूर्ववत कैसे करें?


मैंने गलती से गलत फाइलें की हैं Git, लेकिन मैंने अभी तक सर्वर पर प्रतिबद्धता को धक्का नहीं दिया है।

स्थानीय भंडार से उन लोगों को कैसे पूर्ववत किया जा सकता है?


17823
2017-07-28 22:22


मूल


चेतावनी: आपको केवल यह करना चाहिए यदि आपने अभी तक रिमोट को प्रतिबद्ध नहीं किया है, अन्यथा आप उन लोगों के इतिहास को गड़बड़ कर देंगे जो पहले से ही रिमोट से प्रतिबद्धता खींच चुके हैं! - thSoft
यहां बताया गया है एक बहुत स्पष्ट और पूरी तरह से पोस्ट गिटब से सीधे गिट में चीजों को पूर्ववत करने के बारे में। - Nobita
गिट के लिए स्थानीय, सार्वजनिक और गिट शाखा पर पूर्ववत करने के लिए यह मार्गदर्शिका देखें प्रो जैसे गिट कमेटी को पूर्ववत कैसे करें - Luzan Baral
एक नया उत्तर पोस्ट करने से पहले, इस सवाल के लिए पहले से ही 65+ उत्तर हैं पर विचार करें। सुनिश्चित करें कि आपका उत्तर योगदान देता है जो मौजूदा उत्तरों में नहीं है। - Sazzad Hissain Khan
आप जानते हैं कि गिट की क्या ज़रूरत है? git undo, बस। तब प्रतिष्ठा गिट हमारे द्वारा बनाई गई गलतियों को संभालने के लिए है केवल प्राणियों गायब हो जाता है। किसी भी को निष्पादित करने से पहले वर्तमान स्थिति को गिट स्टैक पर दबाकर कार्यान्वित करें git आदेश। यह प्रदर्शन को प्रभावित करेगा, इसलिए इसे सक्षम करने के लिए कॉन्फ़िगर ध्वज जोड़ना सबसे अच्छा होगा। - Yimin Rong


जवाब:


एक प्रतिबद्धता पूर्ववत करें और फिर से करें

$ git commit -m "Something terribly misguided"             # (1)
$ git reset HEAD~                                          # (2)
<< edit files as necessary >>                              # (3)
$ git add ...                                              # (4)
$ git commit -c ORIG_HEAD                                  # (5)
  1. यही वह है जिसे आप पूर्ववत करना चाहते हैं
  2. यह आपके काम करने वाले पेड़ (डिस्क पर आपकी फाइलों की स्थिति) को अपरिवर्तित छोड़ देता है लेकिन प्रतिबद्धता को कम करता है और आपके द्वारा किए गए परिवर्तनों को छोड़ देता है (इसलिए वे "प्रतिबद्धता के लिए चरणबद्ध नहीं होते" के रूप में दिखाई देंगे git status, और आपको इसे करने से पहले उन्हें फिर से जोड़ना होगा)। अगर तुम केवल चाहना जोड़ना पिछले प्रतिबद्धता में अधिक परिवर्तन, या प्रतिबद्ध संदेश बदलें1, आप उपयोग कर सकते हैं git reset --soft HEAD~ इसके बजाए, जो जैसा है git reset HEAD~ (कहा पे HEAD~ के समान है HEAD~1) लेकिन आपके मौजूदा परिवर्तन चरणबद्ध छोड़ देता है।
  3. पेड़ की फाइलों में काम करने के लिए सुधार करें।
  4. git add कुछ भी जो आप अपनी नई प्रतिबद्धता में शामिल करना चाहते हैं।
  5. पुराने प्रतिबद्ध संदेश का पुन: उपयोग करते हुए परिवर्तनों को प्रतिबद्ध करें। reset पुराने सिर की प्रतिलिपि बनाई .git/ORIG_HEAD; commit साथ में -c ORIG_HEAD एक संपादक खुल जाएगा, जिसमें प्रारंभ में पुराने प्रतिबद्धता से लॉग संदेश होता है और आपको इसे संपादित करने की अनुमति देता है। अगर आपको संदेश को संपादित करने की आवश्यकता नहीं है, तो आप इसका उपयोग कर सकते हैं -C विकल्प।

सावधान रहें कि अगर आपने इंडेक्स में कोई नया बदलाव जोड़ा है, तो इसका उपयोग करें commit --amend उन्हें आपकी पिछली प्रतिबद्धता में जोड़ देगा।

यदि कोड पहले से ही आपके सर्वर पर धकेल दिया गया है और आपके पास इतिहास (रीबेस) को ओवरराइट करने की अनुमति है तो:

git push origin master --force

आप यह जवाब भी देख सकते हैं:

हेड वापस पिछले स्थान पर कैसे स्थानांतरित करें? (अलग सिर)

उपर्युक्त उत्तर आपको दिखाएगा git reflog जिसका उपयोग यह पता लगाने के लिए किया जाता है कि SHA-1 क्या है जिसे आप वापस करना चाहते हैं। एक बार जब आप उस बिंदु को पाते हैं जिसे आप ऊपर वर्णित आदेशों के अनुक्रम का उपयोग करने के लिए पूर्ववत करना चाहते हैं।


1 नोट, हालांकि, अगर आपने अभी अपनी गलती की है तो आपको पहले की प्रतिबद्धता पर रीसेट करने की आवश्यकता नहीं है संदेश भेजें। आसान विकल्प है git reset (तब से किए गए किसी भी बदलाव को बढ़ाने के लिए) और फिर git commit --amend, जो अंतिम प्रतिबद्ध संदेश के साथ पूर्व-आबादी वाले आपके डिफ़ॉल्ट प्रतिबद्ध संदेश संपादक को खोल देगा।


19285
2018-06-16 17:27



और यदि प्रतिबद्धता गलत शाखा के लिए थी, तो आप कर सकते हैं git checkout theRightBranch सभी परिवर्तन चरणों के साथ। जैसा कि मुझे बस करना था। - Frank Shearar
यदि आप इसके बजाए डॉस में काम कर रहे हैं git reset --soft HEAD^ आपको उपयोग करने की आवश्यकता होगी git reset --soft HEAD~1। ^ डॉस में एक निरंतरता चरित्र है, इसलिए यह ठीक से काम नहीं करेगा। इसके अलावा, --soft डिफ़ॉल्ट है, इसलिए यदि आप चाहें और बस कहें तो आप इसे छोड़ सकते हैं git reset HEAD~1। - Ryan Lundy
इसके अलावा, zsh में आपको ^ उद्धृत करना होगा, इसलिए git reset --soft 'HEAD^'... कम से कम मैंने किया था - jberryman
(मैंने जो लिखा है उसमें सुधार; --mixed डिफ़ॉल्ट है। --mixed बदलती फ़ाइलों को रखने का मतलब है, लेकिन उन्हें इंडेक्स में नहीं रखें। --soft बदली गई फाइलें रखेगी और उन्हें इंडेक्स में रखेगी क्योंकि वे बदली गई प्रतिबद्धता से ठीक पहले थीं। गलतफहमी के लिए खेद है।) - Ryan Lundy
zsh उपयोगकर्ताओं को मिल सकता है: zsh: no matches found: HEAD^ - आपको बचने की जरूरत है ^ यानी git reset --soft HEAD\^ - tnajdek


यदि आप नहीं जानते कि यह कैसे काम करता है तो प्रतिबद्धता पूर्ववत करना थोड़ा डरावना है। लेकिन अगर आप समझते हैं तो यह वास्तव में आश्चर्यजनक रूप से आसान है।

मान लें कि आपके पास यह है, जहां सी आपका सिर है और (एफ) आपकी फाइलों की स्थिति है।

   (F)
A-B-C
    ↑
  master

आप चाहते हैं कि nuke प्रतिबद्ध सी और इसे फिर कभी नहीं देखते हैं। तुम इसे करो:

git reset --hard HEAD~1

परिणाम है:

 (F)
A-B
  ↑
master

अब बी सिर है। क्योंकि आपने इस्तेमाल किया था --hard, आपकी फाइलें प्रतिबद्धता बी पर अपने राज्य में रीसेट कर दी गई हैं।

आह, लेकिन मान लीजिए प्रतिबद्ध सी आपदा नहीं थी, लेकिन थोड़ा सा बंद था। आप चाहते हैं कि प्रतिबद्धता पूर्ववत करें लेकिन अपने परिवर्तन रखें बेहतर प्रतिबद्ध करने से पहले कुछ संपादन के लिए। यहां से फिर से शुरू, सी के साथ अपने सिर के रूप में:

   (F)
A-B-C
    ↑
  master

आप इसे छोड़कर कर सकते हैं --hard:

git reset HEAD~1

इस मामले में परिणाम है:

   (F)
A-B-C
  ↑
master

दोनों मामलों में, हेड नवीनतम प्रतिबद्धता के लिए सिर्फ एक सूचक है। जब आप एक करते हैं git reset HEAD~1, आप गीट को हेड पॉइंटर को एक प्रतिबद्धता में ले जाने के लिए कहते हैं। लेकिन (जब तक आप इसका उपयोग नहीं करते --hard) आप अपनी फाइलें जैसे ही थे। तो अब git status आपके द्वारा सी में किए गए परिवर्तन दिखाता है। आपने कुछ खोया नहीं है!

सबसे हल्के स्पर्श के लिए, आप भी कर सकते हैं अपनी प्रतिबद्धता पूर्ववत करें लेकिन अपनी फाइलें और अपनी छोड़ दें सूची:

git reset --soft HEAD~1

यह न केवल आपकी फाइलों को अकेला छोड़ देता है, यह आपके छोड़ देता है सूची अकेला। जब तुम करोगे git status, आप देखेंगे कि वही फ़ाइलें इंडेक्स में पहले की तरह हैं। वास्तव में, इस आदेश के ठीक बाद, आप कर सकते हैं git commit और आप उसी प्रतिबद्धता को फिर से शुरू कर देंगे जो आपने अभी किया था।

एक और चीज़: मान लीजिए कि आप एक प्रतिबद्धता को नष्ट कर देते हैं जैसा कि पहले उदाहरण में है, लेकिन तब पता चलता है कि आपको इसके बाद इसकी आवश्यकता है? कठिन भाग्य, है ना?

नहीं, वहाँ है फिर भी इसे वापस पाने का एक तरीका। प्रकार git reflog और आप उस आंशिक (आंशिक) प्रतिबद्ध शास की एक सूची देखेंगे जिसमें आपने चारों ओर स्थानांतरित किया है। अपनी प्रतिबद्धता को ढूंढें, और ऐसा करें:

git checkout -b someNewBranchName shaYouDestroyed

अब आप उस प्रतिबद्धता को पुनर्जीवित कर चुके हैं। वास्तव में कुछ 90 दिनों के लिए गिट में वास्तव में नष्ट नहीं होते हैं, इसलिए आप आमतौर पर वापस जा सकते हैं और उस व्यक्ति को बचा सकते हैं जिसका आप छुटकारा पाने के लिए नहीं थे।


9734
2018-05-29 18:16



@dma_k, हां। या आप कर सकते हैं git reset --hard HEAD^^ एक बार। मैं tilde (~) नोटेशन का उपयोग करता हूं क्योंकि देखभाल (^) नोटेशन डॉस में काम नहीं करता है। - Ryan Lundy
एक और अच्छी युक्ति: आप उस शाखा को फिर से संलग्न कर सकते हैं जिसे आपने इसे हटा दिया है git branch -f <branch> <commit-id>। काम करता है फिर से बनाने के लिए बचाता है! - naught101
एक गिट शुरुआती के लिए, यह स्पष्ट नहीं है कि पिछले दो विकल्पों (- सॉफ्ट और इसके ऊपर वाला) के बीच अंतर क्या है। इंडेक्स का उल्लेख करने से मदद नहीं मिलती है, हम वास्तव में नहीं जानते कि इसका क्या अर्थ है। नरम और Ctrl-Z के बीच @ नेसुर के कनेक्शन ने वास्तव में मदद की! लेकिन मैं अभी भी दो विकल्पों के बीच अंतर को समझ नहीं पा रहा हूं। - Stomp
उत्तर देने के बजाय, 'क्यों' कुछ काम करता है, यह कहना बेहतर है। इस वर्णन के लिए Kudos - यह 'गिट' पाने में मदद की। - Chris Nash
एक महत्वपूर्ण बिंदु गुम हो रहा है: यदि कहा गया वचन पहले रिमोट को 'धक्का' दिया गया था, तो कोई भी 'पूर्ववत' ऑपरेशन, चाहे कितना आसान हो, उन सभी उपयोगकर्ताओं को भारी दर्द और पीड़ा का कारण बन जाएगा, जिन्होंने अपनी स्थानीय प्रतिलिपि में यह प्रतिबद्ध किया है, जब वे भविष्य में 'गिट पुल' करते हैं। इसलिए, यदि प्रतिबद्धता पहले से ही 'धक्का' थी, तो इसके बजाय इसे करें: git revert <bad-commit-sha1-id> गिट पुश उत्पत्ति: - FractalSpace


मुझे पता लगाने में थोड़ी देर लग गई, तो शायद यह किसी की मदद करेगा ...

आपके अंतिम प्रतिबद्धता को पूर्ववत करने के दो तरीके हैं, इस पर निर्भर करते हुए कि आपने पहले से ही अपना प्रतिबद्ध सार्वजनिक कर दिया है (आपके रिमोट रिपोजिटरी पर धक्का दिया गया है):

स्थानीय प्रतिबद्धता को पूर्ववत कैसे करें

मान लें कि मैंने स्थानीय रूप से प्रतिबद्ध किया है, लेकिन अब उस प्रतिबद्धता को हटाना चाहते हैं।

git log
    commit 101: bad commit    # latest commit, this would be called 'HEAD'
    commit 100: good commit   # second to last commit, this is the one we want

आखिरी प्रतिबद्धता से पहले सब कुछ वापस बहाल करने के लिए, हमें इसकी आवश्यकता है reset पहले प्रतिबद्ध करने के लिए HEAD:

git reset --soft HEAD^     # use --soft if you want to keep your changes
git reset --hard HEAD^     # use --hard if you don't care about keeping the changes you made

अभी व git log दिखाएगा कि हमारी आखिरी प्रतिबद्धता हटा दी गई है।

सार्वजनिक प्रतिबद्धता को पूर्ववत कैसे करें

यदि आप पहले ही अपना काम सार्वजनिक कर चुके हैं, तो आप एक नई प्रतिबद्धता बनाना चाहेंगे जो आपके पिछले प्रतिबद्धता (वर्तमान HEAD) में किए गए परिवर्तनों को "वापस" कर देगी।

git revert HEAD

आपके परिवर्तन अब वापस किए जाएंगे और आपके लिए प्रतिबद्ध होंगे:

git commit -m 'restoring the file I removed by accident'
git log
    commit 102: restoring the file I removed by accident
    commit 101: removing a file we don't need
    commit 100: adding a file that we need

अधिक जानकारी के लिए, जांचें गिट मूल बातें - चीजों को पूर्ववत करना


1751
2018-05-29 18:13



मैंने यह जवाब सबसे स्पष्ट पाया। git revert HEAD^ पिछले नहीं है, पिछले के पिछले है। मैंने किया : git revert HEAD और फिर फिर से धक्का और यह काम किया :) - nacho4d
@riezebosch: आपकी चेतावनी गलत जगह पर है। यह जवाब चीजों को गड़बड़ नहीं करता है, क्योंकि यह सही ढंग से एक नई प्रतिबद्धता बनाता है 102: "जिस फ़ाइल को मैंने दुर्घटनाग्रस्त कर दिया है उसे पुनर्स्थापित करना" - rubo77
यह सबसे अच्छा जवाब है क्योंकि यह आपके गिट इतिहास से गड़बड़ नहीं करता है - Lukas


जिस चीज को आप चाहते हैं उसे पाने के लिए फ़ाइलों को जोड़ें / हटाएं:

git rm classdir
git add sourcedir

फिर प्रतिबद्धता में संशोधन करें:

git commit --amend

पिछली, ग़लत प्रतिबद्धता को नए इंडेक्स राज्य को प्रतिबिंबित करने के लिए संपादित किया जाएगा - दूसरे शब्दों में, ऐसा होगा जैसे आपने पहली बार गलती नहीं की थी।

ध्यान दें कि आपको केवल तभी करना चाहिए यदि आपने अभी तक धक्का नहीं दिया है। यदि आपने धक्का दिया है, तो आपको सामान्य रूप से एक फिक्स करना होगा।


1625
2017-07-31 09:39



क्या यह काम करता है जब मैंने किया था git commit --amend और मैं वास्तव में क्या करना चाहता था ए है git commit? - dbm
@ डीबीएम, यदि आप गलती से संशोधित, उपयोग करें git reset --soft <oldref>, जहां संशोधन से पहले oldref प्रतिबद्ध आईडी है। आप उपयोग कर सकते हैं git reflog पुरानी प्रतिबद्ध आईडी की पहचान करने के लिए। यह संशोधन के प्रभावों को पूर्ववत कर देगा, लेकिन चरणबद्ध परिवर्तन छोड़ दें। तो बस करो git commit एक नियमित प्रतिबद्धता के रूप में प्रतिबद्ध करने के लिए। - bdonlan
@ डेनिस, गिट प्रतिबद्ध --मैंड वर्तमान पेड़ (यानी, चरणबद्ध परिवर्तन) को एक प्रतिबद्धता में बदल देता है, वर्तमान सिर को ओवरराइट कर रहा है। उस बिंदु के बाद, उन्हें अब चरणबद्ध नहीं माना जाता है क्योंकि वे प्रतिबद्धता का हिस्सा हैं (यानी, गिट diff --cached खाली है), लेकिन वे "हटाए गए" या "खोए" नहीं हैं। - bdonlan


git rm yourfiles/*.class
git commit -a -m "deleted all class files in folder 'yourfiles'"

या

git reset --hard HEAD~1

चेतावनी: उपरोक्त आदेश स्थायी रूप से संशोधनों को हटा देगा .java फ़ाइलें (और कोई अन्य फाइलें) जिन्हें आप प्रतिबद्ध करना चाहते थे।

hard reset सेवा मेरे HEAD-1 आपकी गलत प्रतिबद्धता से पहले अपनी कार्यशील प्रति प्रतिबद्धता की स्थिति में सेट कर देगा।


878
2018-05-25 16:04



"--हार्ड" संशोधित .java फ़ाइलों से काम कर रहे निर्देशिका में छुटकारा पायेगा जो वह प्रतिबद्ध करना चाहता था। - Esko Luontola
आप काम करने की प्रतिलिपि परिवर्तनों को "स्टेश सेव" कर सकते हैं, हार्ड रीसेट करें और फिर उन्हें वापस पाने के लिए "गिट स्टैश पॉप" करें, हालांकि मुझे लगता है कि एक सॉफ्ट रीसेट आसान होगा। - Asad R.
git commit -a -m "" या git commit -am "" सहज रूप में! :] - trejder
छेड़छाड़ का एक और 'शॉर्टकट' उपयोग; यदि आप सब कुछ अस्थिर करना चाहते हैं (गिट एड को पूर्ववत करें), बस git stash, फिर git stash pop - seanriordan08


अंतिम प्रतिबद्धता को बदलने के लिए

इंडेक्स में फ़ाइलों को बदलें:

git rm --cached *.class
git add *.java

फिर, अगर यह एक निजी शाखा है, संशोधन प्रतिबद्धता:

git commit --amend

या, यदि यह एक साझा शाखा है, तो एक नई प्रतिबद्धता बनाएं:

git commit -m 'Replace .class files with .java files'


(पिछली प्रतिबद्धता को बदलने के लिए, भयानक का उपयोग करें इंटरैक्टिव रिबेस)


ProTip: जोड़ें *.class ए के लिए gitignore यह फिर से हो रहा है रोकने के लिए।


एक प्रतिबद्धता वापस करने के लिए

प्रतिबद्धता में संशोधन करना आदर्श समाधान है यदि आपको अंतिम प्रतिबद्धता को बदलने की आवश्यकता है, लेकिन एक और सामान्य समाधान है reset

आप गिट को किसी भी प्रतिबद्धता के साथ रीसेट कर सकते हैं:

git reset @~N

कहा पे N पहले काम करता है की संख्या है HEAD, तथा @~ पिछले प्रतिबद्धता को रीसेट करता है।

तो, प्रतिबद्धता में संशोधन करने के बजाय, आप इसका उपयोग कर सकते हैं:

git reset @~
git add *.java
git commit -m "Add .java files"

चेक आउट git help reset, विशेष रूप से अनुभागों पर --soft  --mixed तथा --hard, यह क्या करता है इसकी बेहतर समझ के लिए।

Reflog

यदि आप गड़बड़ करते हैं, तो आप गिराए गए कामों को खोजने के लिए हमेशा रीफ्लॉग का उपयोग कर सकते हैं:

$ git reset @~
$ git reflog
c4f708b HEAD@{0}: reset: moving to @~
2c52489 HEAD@{1}: commit: added some .class files
$ git reset 2c52489
... and you're back where you started



679
2018-01-31 07:06



भविष्य में पढ़ने वालों के लिए - कृपया ध्यान दें git revert एक अलग कमांड है - जो मूल रूप से एक ही कमेटी 'रीसेट' करता है। - BKSpurgeon


उपयोग git revert commit-id

प्रतिबद्ध आईडी प्राप्त करने के लिए, बस उपयोग करें git log


549
2017-12-13 10:18



यदि आपने गलत शाखा के लिए प्रतिबद्ध किया है: एक बार वापस लौटा, सही शाखा पर स्विच करें और चेरी-प्रतिबद्धता चुनें। - Kris
इसका क्या मतलब है, चेरी प्रतिबद्धता उठाओ? मेरे मामले में, जब मैंने एक फ़ाइल संपादित की, तो मैं गलत शाखा पर था। मैंने इसे प्रतिबद्ध किया तो मुझे एहसास हुआ कि मैं गलत शाखा में था। "गिट रीसेट - सॉफ्ट हेड ~ 1" का उपयोग करके मुझे प्रतिबद्धता से पहले वापस मिल गया, लेकिन अब अगर मैं सही शाखा की जांच करता हूं, तो मैं गलत शाखा में फ़ाइल में बदलावों को पूर्ववत कैसे करूं लेकिन इसके बजाय उन्हें (उसी नाम पर) फ़ाइल) सही शाखा में? - astronomerdave
मैंने अभी उपयोग किया git revert commit-id एक जादू की तरह काम किया। बेशक आपको अपने बदलावों को धक्का देना होगा। - Casey Robinson
मुझे विश्वास है कि होगा git cherry-pick <<erroneous-commit-sha>> @astronomerdave। से, श्रीमान-लगभग-2-वर्ष-देर-से-द-पार्टी। - Tom Howard


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

git reset --hard HEAD^1

(यह आदेश आपकी पूरी प्रतिबद्धता को अनदेखा कर देगा और आपके परिवर्तन आपके स्थानीय कामकाजी पेड़ से पूरी तरह से खो जाएंगे)। यदि आप अपनी प्रतिबद्धता पूर्ववत करना चाहते हैं, लेकिन आप स्टेजिंग क्षेत्र में अपने परिवर्तन चाहते हैं (पहले की तरह प्रतिबद्ध होने से पहले git add) तो निम्न आदेश करें।

git reset --soft HEAD^1

अब आपकी प्रतिबद्ध फाइलें स्टेजिंग क्षेत्र में आती हैं। मान लीजिए कि क्या आप फ़ाइलों को अस्थिर करना चाहते हैं, क्योंकि आपको कुछ गलत सहमति संपादित करने की आवश्यकता है, तो निम्न आदेश करें

git reset HEAD

अब प्रतिबद्ध फाइलें चरणबद्ध क्षेत्र से अस्थिर क्षेत्र में आती हैं। अब फाइलें संपादित करने के लिए तैयार हैं, इसलिए जो कुछ भी आप बदलते हैं, आप संपादित करना चाहते हैं और इसे जोड़ना और ताज़ा / नई प्रतिबद्धता बनाना चाहते हैं।

अधिक


441
2018-04-06 13:58



@SMR, आपके उदाहरण में, सभी केवल वर्तमान HEAD में इंगित कर रहे हैं। HEAD ^ = HEAD ^ 1। साथ ही HEAD ^ 1 = HEAD ~ 1। जब आप HEAD ~ 2 का उपयोग करते हैं, तो ~ और ^ प्रतीकों के बीच एक अंतर होता है। यदि आप ~ 2 का अर्थ है "पहले माता-पिता के पहले माता-पिता," या "दादा"। - Madhan Ayyasamy
स्पष्ट और समझने में आसान, मेरी रात बचाओ! - Vladimir Ch
जाहिर है, मैंने गलती से इस जवाब को कम कर दिया, और मेरे लिए इसे कम करने के लिए बहुत देर हो चुकी है। क्षमा याचना। - Matt


यदि आपके पास है गिट अतिरिक्त स्थापित, आप चला सकते हैं git undo नवीनतम प्रतिबद्धता पूर्ववत करने के लिए। git undo 3 पिछले 3 कामों को पूर्ववत कर देगा।


431
2017-10-25 03:41